地址: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          

相关文章:

  • 2022-12-23
  • 2022-01-01
  • 2021-12-23
  • 2022-12-23
  • 2021-07-02
  • 2021-10-28
  • 2021-10-27
  • 2021-12-02
猜你喜欢
  • 2022-02-03
  • 2021-12-19
  • 2021-10-27
  • 2021-09-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案