标签:情况 div pre class nbsp void 角度 分解 mem
今天突然想到一种另一种理解素数筛的角度
对于每个数的质因数分解是 x=p1^a1 * p2^a2 * pk^ak
对于一个合数来说
1. k=1,a1>1
2.k>1,a1>=1
那么对于第一种情况,x=p1^a1 只会被 p1^(a1-1)筛去,对于第二种情况,若a1=1,那么会被p2^a2 * pk^ak筛去,否则只会被p1^(a1-1) * p2^a2 * pk^ak筛去
说了半天跟没说一样= =,贴下bin神的代码
void getprime()
{
memset(prime,0,sizeof prime);
for(int i=2;i<=maxn;i++)
{
if(!prime[i]) prime[++prime[0]]=i;
for(int j=1;j<=prime[0]&&prime[j]<=maxn/i;j++)
{
prime[prime[j]*i]=1;
if(i%prime[j]==0)break;
}
}
}
标签:情况 div pre class nbsp void 角度 分解 mem
原文地址:https://www.cnblogs.com/polya/p/9663404.html