所以...它适用于小数字,但如果temp大于1000,它只打印0或随机数...
#include <stdio.h>
int main() {
int primes[10001];
primes[10000] = 0;
int i,temp;
int n = 2;
temp = 0;
while(temp<=1000){
for(i=2; i<n; i++){
if(n%i == 0){
goto Exit;
}
}primes[temp] = n; temp ++;
Exit:
n ++;
}
for(i=0; i<10001; i++){
printf("%d\n",primes[i]);
}
return 0;
}
答案 0 :(得分:0)
The 1,000th prime is 7919。 The 10,000th prime is 104,729。 在某些系统上,int是16位(65,535)。这足够1000个素数,但不适用于10,000个素数。尝试将所有int变量更改为长变量。
答案 1 :(得分:0)
你的循环条件是temp&lt; = 1000。因此,当temp&gt;时,你的循环不起作用1000.我认为你应该在循环条件下给10000而不是1000。