【问题标题】:Unable to understand Euler totient function无法理解欧拉函数
【发布时间】:2015-11-16 19:57:14
【问题描述】:

我是通过下面的欧拉函数实现来的

    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;
result -= result / n;

【问题讨论】:

    标签: discrete-mathematics number-theory


    【解决方案1】:

    声明:

     result -= result / i;
    

    等于:

     result -= (result / i);
    

    等于:

     quotient = result / i;
     result -= quotient;
    

    等于:

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

    第二个说法很相似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多