1. 程式人生 > >小香蕉找素數

小香蕉找素數

小香蕉找素數(埃氏篩選法)

小香蕉是個文科生,一天,4357問小香蕉一個問題,4357希望小香蕉可以告訴他從1到N( 1 < N <= 1000000)有多少個素數。小香蕉需要help。。。。。

輸入

多組輸入,每次輸入包括一行,僅一個數字N。

#include"math.h"
#include"stdio.h"
long long a[1000000];//定義陣列足夠大
int main()
{long long i,j,k,s,n;
 while(~scanf("%lld",&n))//多組輸入
       { for(i=2;i<=n;i++)從2開始,將所有的陣列元素賦值為1,表示全都是素數
          a[i]=1;
            for(i=2;i<=n;i++)從2開始,依次篩選 
          {  if(a[i]!=0)//!=0表示此處的下標值為素數


                printf("%lld\n",i);並輸出 
               for(k=2*i;k<=n;k=k+i)將此素數的倍數,依次賦值為0。表不為素數了
                a[k]=0;
              }
          }


             }