zoukankan      html  css  js  c++  java
  • 欧拉函数

    欧拉函数的定义

    设1~N个数,其中与N互质的数的个数被称为欧拉函数,记为Φ(n).

    在基本算数定理中,N=p1 c1p2 c2pm cm(不要问我为什么,我也不知道23333)

    Φ(n)=N*p1-1/p1*p2-1/p2*.....*pm-1/pm(其中p为1~N中的质数)

    所以根据欧拉函数的计算式,我们如何计算实现欧拉函数呢,这就可以在质因数分解是顺便求出来

    代码如下

    int phi(int n)
    {
        int ans=n;
        for(int i=1;i<=sqrt(n);i++)
        {
            if(n%i==0)
            {
                    ans=ans*(i-1)/i;
                    while(n%i==0) n=n/i;
            }
            if(n>1) ans=ans*(i-1)/i;
            return ans;
        }    
    }

    性质

    1.任意n>1,1~n中与n互质的数的和为n*Φ(n)/2

    2.若a与b互质,则Φ(a*b)=Φ(a)*Φ(b)

    证明

    因为gcd(n,x)=gcd(n,n-x),所以与n不互质的数是成对出现的,平均值为n/2,所以互质的数也是n/2(证1)

    积性函数

    当a,b互质时,有f(a*b)=f(a)*f(b),则称函数f为积性函数

    欧拉推论

    如果正整数a,n互质,则对于任意整数b,有a的b次方等于a的b次方modΦ(n),相当于a的b次方对n取模(应该是这样子的)

    那么就可以转化成底数对p(质数取模),指数对Φ(p)取模

  • 相关阅读:
    day5模块
    day5时间复杂度
    day5冒泡排序
    day4正则表达式
    C语言 经典编程100题
    C语言 第八章 函数、指针与宏
    C语言 第七章 数组与字符串
    C语言 第六章 多重循环
    C语言 第五章 循环结构
    C语言 第四章 分支结构练习
  • 原文地址:https://www.cnblogs.com/KSTT/p/10360111.html
Copyright © 2011-2022 走看看