101到200的质数

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。

我们设定一个数为x,根据质数的定义判断x是否为质数,我们看它能否被2、3、4······、x-1整除,如果它不能被其中任何一个整数整除,则这个数就是质数。

思路就是 先判断一个数是不是质数,再去拓展。

先说一下错误写法

bool find(int n)
{
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }
    return true;
}

这种是错误的,可能会出现bug

bool find(int n)
{
    int sql=(int)sqrt(1.0*n); 
    for(int i=2;i<=sql;i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}

这种写法是正确的,可以判断一个数是不是质数

完整的程序就是

#include<iostream>
#include<math.h>
using namespace std;
int main()
{//如果整数x为质数,那么就不可能写成 x = a * b的形式。所以如果整数x无法被小于等于x的平方根的质数整除,则x为质数。
    bool flag = true;
    int count = 0;//这定义的是质数的量
    for (int i = 101; i <= 200; i++)
    {
        for (int j = 2; j <= sqrt(i); j++)//sqrt()用来求指定数的平方根,例如我们要判断一个数是不是质数,只需要判断 2 ~ n开根号 之间有没有可以整除的数就可以了
        {//这里是j从2开始,一直找,其实也就是j*j<=i,用元素平方去排查
            if (i % j == 0)//找到了
            {
                flag = false;
                break;//跳出循环
            }
        }
        if (flag)
        {
            count++;//找到后count就会+1
            cout << "  " << i << "  ";//输出这个质数
        }
        flag = true;
    }
    cout << "  " << "总数为:" << count;
    system("pause");
    return 0;
}

 

posted @ 2023-04-23 21:55  酥饼馅红豆沙  阅读(41)  评论(0编辑  收藏  举报