/*
*素数筛选,存在小于等于MAXN的素数
*prime[0]存的是素数的个数
*/
const int MAXN=1000010;
int prime[MAXN+1];
void getPrime()
{
memset(prime,0,sizeof(prime));
for(int i=2;i<=MAXN;i++)
{
if(!prime[i])prime[++prime[0]]=i;//如果是i未必标记,则证明是素数,放入prime中
for(int j=1;j<=prime[0]&&prime[j]<MAXN/i;j++)//将素数的倍数标记
{
prime[prime[j]*i]=1;
if(i%prime[j]==0)break;
}
}
}
素数筛选(筛选小于等于MAXN的素数)
最新推荐文章于 2021-03-15 09:24:29 发布