【发布时间】:2014-09-30 08:22:19
【问题描述】:
我已经使用埃拉托色尼筛法算法来查找特定限制下的素数之和,并且它一直正常工作,直到限制为 200 万,但是当我尝试 300 万时,程序在执行时停止了。代码如下:
int main(){
bool x[3000000];
unsigned long long sum = 0;
for(unsigned long long i=0; i< 3000000; i++)
x[i] = true;
x[0] = x[1] = false;
for(unsigned long long i = 2; i < 3000000; i++){
if(x[i]){
for (unsigned long long j = 2; i * j < 3000000; j++) {
x[j*i] = false;
}
sum += i;
}
}
printf("%ld", sum);
return 0;
}
【问题讨论】:
标签: c loops runtime-error sieve-of-eratosthenes