我的代码如下.它的工作完美而间隔不是很大.但是每当我超过一百万时,程序就会停止.例如,对于区间2到2000000,素数之和应该是142913828922(从书的后面),而我的应用程序显示1179908154.有人可以指出我哪里出错了.
#include <iostream>
#include <math.h>
#define BELOW 2000000;
using namespace std;
bool isPrime(int num)
{
int i;
for (i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
else {
;
}
}
}
int main()
{
long sum = 0;
for (int i = 2; i < BELOW i++) {
if (isPrime(i)) {
sum = sum + i;
printf("sum: %ld\n", sum);
}
}
cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |