void gphi(int n)
{
phi[1]=1,p[1]=1;
FOR(i,2,n)
{
if(!p[i]) p[i]=i,pr[++tot]=i,phi[i]=p[i]-1;
for(int j=1;j<=tot&&pr[j]*i<=n;j++)
{
p[i*pr[j]]=pr[j];
if(p[i]==pr[j]) {phi[i*pr[j]]=phi[i]*pr[j];break;}
else phi[i*pr[j]]=phi[i]*(pr[j]-1);
}
}
}
欧拉函数线性塞模板
猜你喜欢
转载自blog.csdn.net/qq_40858062/article/details/81661180
今日推荐
周排行