• 欧拉函数


    欧拉函数是数论中的一个重要函数。

    同时,它也是密码系统不可缺少的极其重要的函数。

    /*
     * 欧拉函数:数论中,对于正整数n,欧拉函数是小于n的数中与n互质的数的数目。
     * 此函数以其首名研究者欧拉命名(Ruler'so totient function),
     * 又称为Euler's totient function、φ函数、欧拉商数等。
     *
     */
    
    #include <stdio.h>
    
    int eular(int n)
    {
        int ret=1, i;
        for(i=2; i*i<=n; i++) {
            if(n%i == 0) {
                n /= i;
                ret *= i-1;
                while(n%i == 0) {
                    n /= i;
                    ret *= i;
                }
            }
        }
        if(n>1)
            ret *= n-1;
        return ret;
    }
    
    int main(void)
    {
        int i;
        for(i=2; i<=100; i++)
            printf("i=%d eular=%d
    ", i, eular(i));
        return 0;
    }


    关键代码:

    /* 欧拉函数 */
    int eular(int n)
    {
        int ret=1, i;
        for(i=2; i*i<=n; i++) {
            if(n%i == 0) {
                n /= i;
                ret *= i-1;
                while(n%i == 0) {
                    n /= i;
                    ret *= i;
                }
            }
        }
        if(n>1)
            ret *= n-1;
        return ret;
    }


  • 相关阅读:
    一个Fragment的实例
    使用LayoutInflater添加一个布局引用
    11F:42点
    11E:分形盒
    11D:猴子摘桃
    11C:寻找边缘
    11B:夺宝探险
    10J:判断整除
    11A:篮球联赛
    10I:核电站
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564939.html
Copyright © 2020-2023  润新知