VC++用筛选法求小于10的所有素数,也就是质数

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:38:19
题目如下
实现用于计算素数的算法。假定我们要找出小于10的所有素数,其中共有2,3,4,5,6,7,8,9,10九个数,取走最小的数2并 声明他是素数,然后筛掉2的倍数。重复上面的步骤,也就是再筛掉3,5,7的倍数,直到空筛时,就选出所有素数。
作业题,请高手帮忙编个程序,最多追加到100分。请认真回答,最好在15号前给答复,谢谢
我知道直接输出简单,但这是题目要求,不是我想要这么麻烦的

找素数哪来这么麻烦。

像这种题你可以直接输出:2,3,5,7。这是效率最高的方法。

下面是符合题目要求的算法:

#include <stdio.h>
#include <math.h>
using namespace std;

int main()
{
cout << "小于10的素数有:2, ";
for (int i=3; i<=10; i++)
{
bool bIsPrime = true;
if(0 == i%2) continue;
for (int j=3; j<=(int)sqrt(i); j+=2)
{
if(0 == i%j)
{
bIsPrime = false;
break;
}
}
if(bIsPrime)
{
cout << i << ", ";
}
}

return(0);
}

我以前学过!C语言来编程!但我现在只记得要循环!貌似要2个循环!