• 欧拉函数的使用


    一、概念:

      在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。

      例如φ(8)=4,因为1,3,5,7均和8互质。

      欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数.

      对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1).

     (初学者一定注意:此处的欧拉函数与图论中的欧拉回路不同)

    二、通式:

       

      其中p1, p2……pn为x的所有质因数,x是不为0的整数。

           φ(1) = 1(唯一和1互质的数(小于等于1)就是1本身)。 (注意:每种质因数只一个。比如 12 = 2*2*3 那么      φ(12) = 12 * (1-1/2) * (1-1/3)=4  )

           若 n = p^k  (  p为 质数 ),则 φ(n) = p^k-p^(k-1) = (p-1)p^(k-1),( 除 p 的倍数外,其他数均为 p 的互质数 )。

           若n = p( p 为质数),则  φ(n) = p-p^(1-1) = p-1。

    三、性质:

    (1)   p^k型欧拉函数:

    若N是质数p(即N=p), φ(n)= φ(p)=p-p^(k-1)=p-1。

    若N是质数p的k次幂(即N=p^k),φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)。

    (2)mn型欧拉函数

    设n为正整数,以φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值。若m,n互质,φ(mn)=(m-1)(n-1)=φ(m)φ(n)。

    (3)特殊性质:

    若n为奇数时,φ(2n)=φ(n)。

    对于任何两个互质 的正整数a,n(n>2)有:a^φ(n)=1 mod n (恒等于)此公式即 欧拉定理

    当n=p 且 a与素数p互质(即:gcd(a,p)=1)则上式有: a^(p-1)=1 mod n (恒等于)此公式即 费马小定理

    三、模板

    1.直接求小于或等于n,且与n互质的个数:

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

    2.筛选模板:求[1,n]之间每个数的质因数的个数

    #define size 1000001
    int euler[size];
    void Init()
    {
        euler[1]=1;
        for(int i=2; i<size; i++)
            if(!euler[i])
                for(int j=i; j<size; j+=i)
                {
                    if(!euler[j])
                        euler[j]=j;
                    euler[j]=euler[j]/i*(i-1);//先进行除法是为了防止中间数据的溢出
                }
    }
  • 相关阅读:
    2018.10.22-ssoi3979荔枝丹(litchi)
    2018.10.18- oj3969 pd
    2018.10.18-ssoj3970 graph
    【2019年8月版】OCP 071认证考试原题-第38题
    【2019年8月版】OCP 071认证考试原题-第37题
    【2019年8月版】OCP 071认证考试原题-第36题
    【2019年8月版】OCP 071认证考试原题-第35题
    【2019年8月版】OCP 071认证考试原题-第34题
    【2019年8月版】OCP 071认证考试原题-第33题
    【2019年8月】OCP 071认证考试最新版本的考试原题-第32题
  • 原文地址:https://www.cnblogs.com/aiguona/p/7307033.html
Copyright © 2020-2023  润新知