/*埃式筛算法*/
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;
            }
        }
    }
}