ll phi(ll n)
{
ll i,rea=n;
for(i=2;i*i<=n;++i)
{
if(n%i==0)
{
rea=rea-rea/i;
while(n%i==0)
n/=i;
}
}
if(n>1)
rea=rea-rea/n;
return rea;
}
phi[1]=1;
for(int i=2;i<maxn;i++)
phi[i]=i;
for(int i=2;i<maxn;i++)
if(phi[i]==i)
for(int j=i;j<maxn;j+=i)
phi[j]=phi[j]/i*(i-1);
欧拉函数模版
最新推荐文章于 2024-07-26 03:45:22 发布