看了老半天,調試了幾遍還是沒理解代碼啥意思,咋寫出來的,看來時間是最好的解決辦法,等我過幾天再推推,先記住這十三行代碼
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;
}