欧拉函数一些定理的证明

参考书籍:《ACM-ICPC程序设计系列--数论及应用》

欧拉函数φ(n)指不超过n且与n互质的正整数的个数,其中n是一个正整数。

欧拉函数的性质:它在整数n上的值等于对n进行素因子分解后,所有的素数上的欧拉函数之积。

定义:

  1.定义在所有正整数上的函数称为算数函数

    2.算法函数f如果满足对任意两个互质的正整数n和m,均有f(mn)=f(n)f(m),就称为积性函数。如果对任意的两个正整数n和m,均有f(mn)=f(m)f(n),就称为完全积性函数。

(欧拉函数就是一个积性函数证明:http://www.cnblogs.com/372465774y/archive/2012/10/16/2726282.html

定理:

  1.如果f是一个积性函数,对任意正整数n有素数幂分解n=p1a1  * p2a2  * .... *psas,那么f(n)=f(p1a1)*f(p2a2)*...*f(psas)。

    2.如果p是素数,那么φ(n)=p-1;反之如果p是一个正整数且满足φ(p)=p-1,那么p是素数。  

    3.设p是素数,a是一个正整数,那么φ(pa)=pa-pa-1

证明:比pa小的数有pa-1个,因为pa只有一个素因子p,其中与p不互质的有pa-1-1(分别是1*p,2*p,3*p....(pa-1-1)*p )

所以φ(pa)=(pa-1)-(pa-1-1)=pa-pa-1  证毕。

    4.设n和m是互质的正整数,那么φ(nm)=φ(n)φ(m)  (因为欧拉函数是积性函数嘛,上面有证明)。

5.设n=p1a1  * p2a2  * .... *pka为正整数n的素数幂分解,那么

        φ(n)=n * (1-1/p1)*(1-1/p2)*....*(1-1/pk)  (算法的核心)

证明:由定理4可知φ(n)=φ(p1a1)*φ(p2a2)*.....*φ(pkak

  再由定理3得φ(n)=(p1a1-p1a1-1)*(p2a2-p2a2-1)*.....*(pkak-pkak-1

  提取因素得φ(n)=p1a1 (1-1/p1)*p2a2(1-1/p2)*pkak(1-1/pk

  所以φ(n)=n * (1-1/p1)*(1-1/p2)*....*(1-1/pk) 证毕。

推论:当n为奇数时,有φ(2n)=φ(n);

证明:设n=p1a1  * p2a2  * .... *pkak(假设p1是2)    则 φ(n)=n * (1-1/p1)*(1-1/p2)*....*(1-1/pk)

那么2n=p1a1+1  * p2a2  * .... *pkak  即φ(2n)=(p1a1+1-p1a1)*(p2a2-p2a2-1)*.....*(pkak-pkak-1

                          =p1a1 (p1-1)*p2a2(1-1/p2)*pkak(1-1/pk

                          =n * (p1-1)*(1-1/p2)*....*(1-1/pk)

                          =n *(1-1/p2)*....*(1-1/pk) 

因为n为奇数所以没有2这个素因子,即a1=0. 所以φ(n)=n *(1-1/p2)*....*(1-1/pk)=φ(2n) 证毕。

6.设n是一个大于2的正整数,那么φ(n)是偶数

证明:因为φ(n)=(p1a1-p1a1-1)*(p2a2-p2a2-1)*.....*(pkak-pkak-1

情况一:n有2这个素因子时,piai-piai-1(令pi=2)一定是偶数(偶数减偶数嘛)φ(n)是一个偶数的倍数当然是偶数了。

情况二 : n没有2这个素因子,一定存在一个奇素因子,piai-piai-1为偶数(因为 p^a与p^(a-1) 均为奇数)

    7.∑d|nφ(d)=n  (即n的因子的欧拉函数值之和为n)

证明:

情况一:n=1时显然成立

情况二:n≠1时,

定理基本介绍完了,我们来看代码:

如果根据定理5直接实现:

int phi(int n)
{
    int rea=n;
    for(int i=2;i<=n;i++)
    {
        if(n%i==0)//找到素因子
        {
            rea=rea/i*(i-1);
            while(n%i==0)//把该素因子全部约掉
                n/=i;
        }
    }
    return rea;
}

时间复杂度为O(n),还可以优化降到O(√n),因为任何一个合数都至少有一个不大于√n的素因子,所以只需要遍历√n即可

int phi(int n)
{
    int rea=n;
    for(int i=2;i*i<=n;i++)//变化的地方
    {
        if(n%i==0)
        {
            rea=rea/i*(i-1);
            while(n%i==0)
                n/=i;
        }
    }
    if(n>1)//有可能有一个大于√n素因子
        rea=rea/n*(n-1);
    return rea;
}

如果最后n>1,为什么一定是一个大于√n的素因子。简单说下,因为不可能是两个及以上素因子的乘积。因为倒数第二个素因子一定小于√n。

原文地址:https://www.cnblogs.com/xiongtao/p/10686183.html

时间: 2024-12-18 00:46:42

欧拉函数一些定理的证明的相关文章

BZOJ-1951-古代猪文-SDOI2010-费马小定理+欧拉函数+lucas定理+中国剩余定理

描述 =>G∑(ni),i|nmodP 分析 k=∑Cin,i|n(modP) G?(P)≡1(modP),?(p)=p?1 P′=P?1 =>GP′≡1(modP) Gk≡GkmodP′(modP) 如何求k? lucas定理 (nm)=(nmodP′mmodP′)?(n/P′m/P′) P'不是素数, lucas定理不适用. 所以把P'-1拆成2*3*4679*35617再用中国剩余定理来解. 一下子用这么多不熟悉的定理和方法感觉这个题好厉害. 终于知道当被模的数不是质数该怎么用中国剩余定

poj1284:欧拉函数+原根

何为原根?由费马小定理可知 如果a于p互质 则有a^(p-1)≡1(mod p)对于任意的a是不是一定要到p-1次幂才会出现上述情况呢?显然不是,当第一次出现a^k≡1(mod p)时, 记为ep(a)=k 当k=(p-1)时,称a是p的原根每个素数恰好有f(p-1)个原根(f(x)为欧拉函数) 定理:对于奇素数m, 原根个数为phi(phi(m)), 由于phi(m)=m-1, 所以为phi(m-1).某大牛的证明: {xi%p | 1 <= i <= p - 1} = {1,2,...,p

根据要求求除数的数 与 互素和算法 (的品质因数和欧拉函数分解)

Description One day, Qz met an easy problem. But after a 5-hout-long contest in CSU, he became very tired and he wanted to call his girlfriend as soon as possible. As we all know, Qz is a genius in plenty of fields especially in programming. But he d

POJ 2480 Longge&#39;s problem (欧拉函数+乘性函数)

Longge's problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7343   Accepted: 2422 Description Longge is good at mathematics and he likes to think about hard mathematical problems which will be solved by some graceful algorithms. Now

费马小定理,欧拉函数

在证明这些定理之前先证明一个有意思的定理. 对于0 mod m,n mod m , 2n mod m, 3n mod m, 4n mod m... (m-1)n mod m 对应解集序列 一定有 m/d份 0 d 2d 3d..m-d. (不一定按照顺序) 这样的解. 其中d = gcd(n,m) 具体点:n=8,m=12.  d = gcd(n,m)=4 对于 0 mod 12,8 mod 12,16 mod 12,24 mod 12,32 mod 12,40 mod 12...88 mod

欧拉函数、欧拉定理和费马小定理

对于正整数n,欧拉函数是小于等于n的正整数中与n互质的数的数目,表示为φ(n). 性质1:对于素数p,φ(p)=p-1. 性质2:对于两个互质数p,q,φ(pq)=φ(p)*φ(q)=(p-1)(q-1).(积性函数)(待证) 性质3:若n是质数p的k次幂,φ(n)=pk-pk-1=(p-1)pk-1,因为除了p的倍数外,其他数都跟n互质. 性质4: 因为:x可以分解成p1q1×p2q2×p3q3--×pnqn (pi为x的质因数) 因为piqi两两互质,所以:φ(x)=φ(p1q1)×φ(p2

Polya 定理入门[Burnside引理,Polya定理,欧拉函数]

$这篇blog重点讨论Polya的应用, 更详细的证明请百度 .$ ___ $Burnside引理$ $$L=\frac{1}{|G|}\sum_{i=1}^{|G|}D(a_i)$$ $L$: 本质不同的方案数. $G$: 置换群集合. $a_i$: 置换群中的第 $i$ 个置换. $D(a_i)$: 进行 $a_i$ 这个置换, 状态不会变化的方案 数量. 该引理与下方内容没有太大关系, 可以暂时忽略. ___ $Problem$ 链接 有 $N$ 个石子围成一圈, 使用 $M$ 种颜色染色

费马小定理及欧拉函数

2016.1.26 对于m=p1e1 . p2e2 . p3e3 . …… . pnen 欧拉函数定义为φ(m)=m * ∏(pi – 1)/pi 其意义为不超过m并且和m互素的数的个数 特别的φ(1)=1 对于和m互素的x,有xφ(m)≡1(mod m) 特别的,当p为素数时,x无法被p整除,φ(p)=p-1,于是便有费马小定理Xp-1≡1(mod p) 在p是素数时,对任意正整数x都有Xp≡X(mod p) 于是对于a的逆元x,有ax≡1(mod m),对于a,m互素时,有x=am-2,于是

poj2054Color polya定理+欧拉函数优化

没想到贱贱的数据居然是错的..搞得我调了一中午+晚上一小时(哦不d飞LJH掉RP毕竟他是BUFF)结果重判就对了五次.. 回归正题,这题傻子都看得出是polya定理(如果你不是傻子就看这里),还没有翻转,就一个旋转,结果我就欢快的打完交上去了.傻子都知道会TLE,n<=1e9啊,O(n)都原地爆炸,那怎么办...一脸懵逼(然后就膜题解了) 可以发现,这题公式就是sigma(gcd(k,n))(k=1~n),然后该怎么优化呢,我(??)发现gcd(k,n)里面肯定有一些k和n的gcd是相同的,那我