NYOJ 187 快速查找素数 (打表)

地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=187

思路:一般的方法会超时,打表。。。算法分析:打素数表;

 1 #include<stdio.h>
 2 int a[2000001];
 3 int main()
 4 {
 5     int i,j,n;
 6     for(i=2;i<=2000000;i++)
 7     {
 8         if(!a[i])  //未被标记 
 9         for(j=i+i;j<=2000000;j+=i)  //素数的倍数不是素数
10         a[j]=1;  //标记
11     }
12     while(scanf("%d",&n),n)
13     {
14         printf("2");
15         for(i=3;i<=n;i++)
16         if(!a[i])
17         printf(" %d",i);
18         printf("\n");
19     }
20     return 0;
21 }
22          

posted on 2012-08-18 21:18  mycapple  阅读(1173)  评论(0编辑  收藏  举报

导航