/*埃式筛算法*/ const int maxn=1e6+7;//总的范围规定在这里 bool isprime[maxn]; //判定是不是素数,true是素数,false不是素数 void sieve() { for(int i=0;i<=maxn;i++) isprime[i]=true; //初始化,一开始都是素数(true) ,0和1不是素数(false) isprime[0]=isprime[1]=false; for(int i=2;i<=maxn;i++) //从2开始往后筛 { if(isprime[i]) { for(int j=2*i;j<=maxn;j+=i) //很重要,注意细节 { isprime[j]=false; } } } }