找到Primes,我哪里错了?

时间:2016-02-16 03:34:45

标签: c primes

所以...它适用于小数字,但如果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;
 }

2 个答案:

答案 0 :(得分:0)

The 1,000th prime is 7919The 10,000th prime is 104,729。 在某些系统上,int是16位(65,535)。这足够1000个素数,但不适用于10,000个素数。尝试将所有int变量更改为长变量。

答案 1 :(得分:0)

你的循环条件是temp&lt; = 1000。因此,当temp&gt;时,你的循环不起作用1000.我认为你应该在循环条件下给10000而不是1000。