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          

你可能感兴趣的:(素数)