欧拉函数:
设oula(i)为i对应的欧拉函数值,那么oula(i)=i*(1-1/p1)*(1-1/p2)*(1-1/p3)*……*(1-1/pn)(这是定理,我们也不需要去推导了。。大师推出来的结果比我们准确得多,会用就行)
其中,p1,p2,p3,……,pn为i的素因子,就是将i素因子分解之后得到的所有因子。
那么,得出代码:
int oula(int n)
{
int ans=n;
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
{
ans=ans-ans/i;
while(n%i==0)
n/=i;
}
}
if(n>1)
ans=ans-ans/n;
return ans;
}