优化后的 求素数

View Code
 1 #include <stdio.h>
 2 #include<math.h>
 3 int prime[1000000];
 4 int main()
 5 {
 6   int s,max;
 7   while(scanf("%d",&max)!=EOF&&max!=0)
 8    {
 9        s=0;
10       prime[0]=prime[1]=0;prime[2]=1;
11      for(int i=3;i<max;i++)
12         prime[i]=i%2==0?0:1;
13      int t=(int)sqrt(max*1.0);
14      for(int i=3;i<=t;i++)
15        if(prime[i])
16          for(int j=i*2;j<max;j+=i)
17             prime[j]=0;
18          for(int i=2;i<=max;i++)
19              if(prime[i]==1)
20                  s++;
21          printf("%d\n",s);
22   }
23     return 0;
24 }
原文地址:https://www.cnblogs.com/bfshm/p/2954866.html