#include <iostream>
using namespace std;
bool isPrime(int n)
{
for(int i = 2; i * i <= n; i++)
if(n % i == 0)
return false;
return true;
}
int main()
{
//int sum = 0;//测试代码
for(int n = 2; n <= 100; n++)
{
if( isPrime(n) )
cout << n << endl;
//sum = sum + n;//测试代码
}
return 0;
}
若将n的范围改为10^7,速度将变得非常慢。这主要是由于cout语句占用时间引起的,用测试代码替换并删除cout语句后,n在10^7也只需要6秒多算完。
这是求素数最普通的算法——枚举法,后面将介绍如何用筛法(也叫埃拉托斯特尼法)求素数。