看了老半天,调试了几遍还是没理解代码啥意思,咋写出来的,看来时间是最好的解决办法,等我过几天再推推,先记住这十三行代码
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; }
时间: 2024-11-06 11:49:23
看了老半天,调试了几遍还是没理解代码啥意思,咋写出来的,看来时间是最好的解决办法,等我过几天再推推,先记住这十三行代码
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; }