小香蕉找素数

小香蕉找素数(埃氏筛选法)

小香蕉是个文科生,一天,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;
              }
          }


             }




猜你喜欢

转载自blog.csdn.net/qq_43506138/article/details/83714611
今日推荐