用筛法求之N内的素数,这样有错吗?测试数据都过了但就是答案不正确,求大牛
N(0<=N<=10,000,000)
Output
0~N的素数
Sample Input
100
Sample Output
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
#include<stdio.h>
#define N 5000000
int array[N],prime[N];
int main()
{
int i, j, k, n;
k = 0;
for (i = 2; i < 10000000; i++)
{
if (array[i] == 0)
{
prime[k++] = i;
for(j = 2; i*j < 10000000; j++)
{
array[i*j] = 1;
}
}
}
while (scanf("%d",&n) != EOF)
{
for (i = 0; prime[i] < n; i++)
{
if (prime[i] != 0)
printf("%d\n",prime[i]);
}
}
return 0 ;
}