无法理解Euler totient函数

时间:2015-11-16 19:57:14

标签: discrete-mathematics number-theory

我通过以下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}}

1 个答案:

答案 0 :(得分:1)

声明:

 result -= result / i;

等于:

 result -= (result / i);

等于:

 quotient = result / i;
 result -= quotient;

等于:

 quotient = result / i;
 result = result - quotient;

第二个陈述非常相似。