线性筛 板子整理
Posted passione-123456
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性筛 板子整理相关的知识,希望对你有一定的参考价值。
线性筛筛素数:
void getxxs(int N){ for(int i=2;i<=N;i++){ v[i]=1; } for(int i=2;i<=N;i++){ if(v[i]==1){ prime[++num]=i; } for(int j=1;j<=num&&i*prime[j]<=N;j++){ v[i*prime[j]]=0; if(i%prime[j]==0){ break; } } } }
线性筛筛欧拉函数:
void getxxs(int N){ for(int i=2;i<=N;i++){ v[i]=1; } for(int i=2;i<=N;i++){ if(v[i]){ prime[++num]=i; phi[i]=i-1; } for(int j=1;i*prime[j]<=N&&j<=num;j++){ v[i*prime[j]]=0; if(i%prime[j]==0){ phi[i*prime[j]]=phi[i]*prime[j]; break; }else{ phi[i*prime[j]]=phi[i]*(prime[j]-1); } } } }
线性筛筛莫比乌斯函数:
getxxs(int N){ for(int i=2;i<=N;i++){ v[i]=1; } mu[1]=1; for(int i=2;i<=N;i++){ if(v[i]){ prime[++num]=i; mu[i]=-1; } for(int j=1;j<=num&&i*prime[j]<=N;j++){ v[i*prime[j]]=0; if(i%prime[j]==0){ mu[i*prime[j]]=0; break; }else{ mu[i*prime[j]]=-mu[i]; } } } }
以上是关于线性筛 板子整理的主要内容,如果未能解决你的问题,请参考以下文章