我的代码适用于最多300或20的数字.但它不适用于2000000.我尝试使用long,但它仍然无效.
#include <iostream>
bool prime(int i) {
bool result = true;
int isitprime = i;
for (int j = 2; j < isitprime; j++) { ///prime number tester
if (isitprime % j == 0) {
result = false;
break;
}
}
return result;
}
int main(void) {
using namespace std;
long sum = 0;
for (long i = 2; i <= 2000000; i++) {
if (prime(i)) {
sum += i;
}
}
cout << sum << endl;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
mat*_*975 10
我相信,质数小于2000000总和为142913828922,但一个长整型的最大值为2147483647这是不是大到足以存储这笔款项.