看了老半天,调试了几遍还是没理解代码啥意思,咋写出来的,看来时间是最好的解决办法,等我过几天再推推,先记住这十三行代码
int euler(int n)
{
int ret=n,i;
for (i=2;i*i<=n;i++)
if (n%i==0)
{
ret=ret-ret/i;
while (n%i==0)
n/=i;
}
if (n>1) ret=ret-ret/n;
return ret;
}