小香蕉找素數
阿新 • • 發佈:2018-11-09
小香蕉找素數(埃氏篩選法)
小香蕉是個文科生,一天,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; } } }