我通过以下Euler-totient函数的实现
int fi(int n) {
int result = n;
for(int i=2;i*i <= n;i++) {
if (n % i == 0) result -= result / i;
while (n % i == 0) n /= i;
}
if (n > 1) result -= result / n;
return result;
}
我无法理解遵循结果陈述的目的
result -= result / i;
{
{1}}
答案 0 :(得分:1)
声明:
result -= result / i;
等于:
result -= (result / i);
等于:
quotient = result / i;
result -= quotient;
等于:
quotient = result / i;
result = result - quotient;
第二个陈述非常相似。