#include <iostream>
using namespace std;
const int N = 100;
bool sieve[N + 1];
int main()
{
for(int i = 2; i <= N; i++)
sieve[i] = true;
for(int d = 2; d * d <= N; d++)
if( sieve[d] )
for(int n = d * d; n <= N; n += d)
sieve[n] = false;
//int sum = 0;//测试代码
for(int n = 2; n <= N; n++)
if( sieve[n] )
cout << n <<endl;
//sum = sum + n;//测试代码
return 0;
}
当常量N赋值10^7时,程序只需1秒多算完,充分体现出筛法相对于枚举法的高效性。