欧拉函数
互质 :对于 ∀ a , b ∈ N ∀ a , b ∈ N , 若 a , b a , b 的最大公因数为 1 1 , 则称 a , b a , b 互质。
欧拉函数 :即 φ ( N ) φ ( N ) , 表示从 1 1 到 N N 中与 N N 互质的数的个数。
在算术基本定理 中, 任何一个大于 1 1 的整数都可以唯一分解为有限个质数的乘积, 写作;
N = p c 1 1 p c 2 2 … p c m m N = p 1 c 1 p 2 c 2 … p m c m
其中, p i p i 为质数 , c i c i 为正整数 , 且 p 1 < p 2 < … < p m p 1 < p 2 < … < p m 。
于是就有一个公式:
φ ( N ) = N ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m − 1 p m = N ⋅ ∏ 质 数 p | N ( 1 − 1 p ) φ ( N ) = N ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m − 1 p m = N ⋅ ∏ 质数 p | N ( 1 − 1 p )
证法一
首先一个数要与 N N 互质的数, 则充要条件是它的质因子都不会在 N N 的质因子当中出现。因此,我们只需要将 N N 分解每个质因子 p i p i , 再从 1 ∼ N 1 ∼ N 中去除可以被 p i p i 整除的数,最后剩下的就一定都是与 N N 互质的数了。当我们去除 1 ∼ N 1 ∼ N 中与被 p 1 p 1 整除的数时,1 ∼ N 1 ∼ N 中 p p 的倍数 p 1 , 2 p 1 , 3 p 1 , … N / p 1 ⋅ p 1 p 1 , 2 p 1 , 3 p 1 , … N / p 1 ⋅ p 1 这 N / p 1 N / p 1 个数都会被去除。则此时 N N 中质因子不包括 p 1 p 1 的数有 N − N p 1 N − N p 1 个。同理, 当我们去除 1 ∼ N 1 ∼ N 中与被 p 2 p 2 整除的数时,也会去除 N / p 2 N / p 2 个数。但若有数即使 p 1 p 1 也是 p 2 p 2 的倍数, 即 p 1 ⋅ p 2 p 1 ⋅ p 2 的倍数,就会被去除 2 2 次,因此还要加回来一次。这时 1 ∼ N 1 ∼ N 中不含有质因子 p 1 p 1 与 p 2 p 2 的数的个数为:
N − N p 1 − N p 2 + N p 1 p 2 = N ∗ ( 1 − 1 p 1 − 1 p 2 + 1 p 1 p 2 ) = N ( 1 − 1 p 1 ) ( 1 − 1 p 2 ) N − N p 1 − N p 2 + N p 1 p 2 = N ∗ ( 1 − 1 p 1 − 1 p 2 + 1 p 1 p 2 ) = N ( 1 − 1 p 1 ) ( 1 − 1 p 2 )
依次类推,类似的读者也可以自己试着推一下当去除 p 3 p 3 的倍数的情况,这样一直推下去,就能推出上面的公式。给一个更好理解的方式:
设 1 ∼ N 1 ∼ N 中的一个整数 a a 能被 k k 个 N N 的质因子整除,于是它的去除次数就是:
C 1 k − C 2 k + C 3 k − … + ( − 1 ) k − 1 ⋅ C k k = 1 C k 1 − C k 2 + C k 3 − … + ( − 1 ) k − 1 ⋅ C k k = 1
上式由二项式定理 可得。
这就保证了每个质因子包含了 N N 的质因子的数有且只会被去除一次。
这种思想就叫做容斥原理 。长这样:
证法二:
欧拉函数有一个性质 ,即它是积性函数 。
积性函数 :对于任意互质的整数 a a 和 b b 有性质f ( a b ) = f ( a ) ⋅ f ( b ) f ( a b ) = f ( a ) ⋅ f ( b ) 的数论函数。
证明如下 :
设 a a 的所有质因子为{ p 1 , p 2 , … , p m 1 } { p 1 , p 2 , … , p m 1 } , b b 的所有质因子为 { q 1 , q 2 , … , q m 2 } { q 1 , q 2 , … , q m 2 } , a b a b 的所有质因子为{ r 1 , r 2 , … , r m 3 } { r 1 , r 2 , … , r m 3 } 。则:
φ ( a ) = a ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 φ ( a ) = a ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1
φ ( b ) = b ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2 φ ( b ) = b ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2
φ ( a ) ⋅ φ ( b ) = a ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 ⋅ b ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2 = a b ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2 φ ( a ) ⋅ φ ( b ) = a ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 ⋅ b ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2 = a b ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2
φ ( a b ) = a b ⋅ r 1 − 1 r 1 ⋅ r 2 − 1 r 2 ⋅ … ⋅ r m 3 − 1 r m 3 φ ( a b ) = a b ⋅ r 1 − 1 r 1 ⋅ r 2 − 1 r 2 ⋅ … ⋅ r m 3 − 1 r m 3
因为 a a 与 b b 互质,所以对于任意的 a a 的质因子 p i p i , b b 的质因子q j q j , 都有 p i ≠ q j p i ≠ q j 。因此, a b a b 的所有质因子 { r 1 , r 2 , … , r m 3 } = { p 1 , p 2 , … , p m 1 } + { q 1 , q 2 , … , q m 2 } { r 1 , r 2 , … , r m 3 } = { p 1 , p 2 , … , p m 1 } + { q 1 , q 2 , … , q m 2 } 。
因此,
p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2 = r 1 − 1 r 1 ⋅ r 2 − 1 r 2 ⋅ … ⋅ r m 3 − 1 r m 3 p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋅ … ⋅ p m 1 − 1 p m 1 ⋅ q 1 − 1 q 1 ⋅ q 2 − 1 q 2 ⋅ … ⋅ q m 2 − 1 q m 2 = r 1 − 1 r 1 ⋅ r 2 − 1 r 2 ⋅ … ⋅ r m 3 − 1 r m 3
即:
φ ( a b ) = φ ( a ) ⋅ φ ( b ) φ ( a b ) = φ ( a ) ⋅ φ ( b )
证毕。
由算术基本定理 ,
N = p c 1 1 p c 2 2 … p c m m N = p 1 c 1 p 2 c 2 … p m c m
对于每项 φ ( p c i i ) φ ( p i c i ) , 从定义出发,表示从1 ∼ p c 1 1 1 ∼ p 1 c 1 之间所有与 p c 1 1 p 1 c 1 互质的数的个数。因为 p 1 p 1 为质数,所以只有 p 1 p 1 的倍数才是不与 $p_1 ^{c_1} 互 质 的 数 。 因 此 互 质 的 数 。 因 此 \varphi(p_i^{c_i}) = p_i^{c_i} - p_i^{c_i - 1}$。
于是
N = ( p c 1 1 − p c 1 − 1 1 ) ( p c 2 2 − p c 2 − 1 2 ) … ( p c m m − p c m − 1 m ) = p c 1 1 ( 1 − 1 p 1 ) p c 2 2 ( 1 − 1 p 2 ) … p c m m ( 1 − 1 p m ) = p c 1 1 p c 2 2 … p c m m m ∏ i = 1 ( 1 − 1 p i ) = N ⋅ ∏ 质 数 p | N ( 1 − 1 p ) N = ( p 1 c 1 − p 1 c 1 − 1 ) ( p 2 c 2 − p 2 c 2 − 1 ) … ( p m c m − p m c m − 1 ) = p 1 c 1 ( 1 − 1 p 1 ) p 2 c 2 ( 1 − 1 p 2 ) … p m c m ( 1 − 1 p m ) = p 1 c 1 p 2 c 2 … p m c m ∏ i = 1 m ( 1 − 1 p i ) = N ⋅ ∏ 质数 p | N ( 1 − 1 p )
欧拉定理
欧拉定理 :若 gcd ( a , m ) = 1 gcd ( a , m ) = 1 , 则 a φ ( m ) ≡ 1 ( mod m ) a φ ( m ) ≡ 1 ( mod m )
这里就需要一丢丢数论基础,让我来稍做补充:
剩余系 :对于任意正整数 m m ,一个数除以 m m 所得的余数只能是 0 , 1 , 2 , … , m − 1 0 , 1 , 2 , … , m − 1 中的某一个,因此可以将整数分为 m m 个类。每个类叫做剩余类。从中任选任意多个类,从这些类中各取一个数,构成一个集合,就将这个集合称为模 m m 的剩余系。
完全剩余系(完系) :从模 m m 的 m m 个类中,每类各取 1 1 个数所构成的集合就算模 m m 的一个完全剩余系,简称为模 m m 的完系。
简化剩余系(缩系) :如果一个模 m m 的剩余类中存在一个与 m m 互素的剩余,该类叫做简化剩余类;在模 m m 的所有不同简化剩余类中,从每个类任取一个数组成的整数的集合,叫做模 m m 的一个简化剩余系。容易得出, 模 m m 共有 φ ( m ) φ ( m ) 个简化剩余类。
证明:
设 r 1 , r 2 , … , r φ ( m ) r 1 , r 2 , … , r φ ( m ) 为模 m m 意义下的一个简化剩余系, 即r 1 , r 2 , … , r φ ( m ) r 1 , r 2 , … , r φ ( m ) 之前互不相同且都与 m m 互为质数, 那么,对于任意 r i , r j ( i ≠ j ) r i , r j ( i ≠ j ) , 与 a a 的乘积 a r i , a r j a r i , a r j 不相等, 且仍然与 m m 互质(注意, a a 与 m m 互质, 我就因为没注意到这个懵逼了好久QAQ ),因此, a r 1 , a r 2 , … , a r φ ( m ) a r 1 , a r 2 , … , a r φ ( m ) 也是模 m m 意义下的一个简化剩余系,则
r 1 r 2 … r φ ( m ) ≡ a r 1 a r 2 … a r φ ( m ) ≡ a φ ( m ) ( r 1 r 2 … r m ) ( mod m ) r 1 r 2 … r φ ( m ) ≡ a r 1 a r 2 … a r φ ( m ) ≡ a φ ( m ) ( r 1 r 2 … r m ) ( mod m )
约去( r 1 r 2 … r m ) ( r 1 r 2 … r m ) , 得
1 ≡ a φ ( m ) ( mod m ) 1 ≡ a φ ( m ) ( mod m )
证毕。
同时,我们还可以用欧拉定理推出费马小定理:
费马小定理 : 若 p p 为素数, gcd ( a , p ) = 1 gcd ( a , p ) = 1 , 则 a p − 1 ≡ 1 ( mod p ) a p − 1 ≡ 1 ( mod p )
当 p p 为素数时,很显然, φ ( p ) = p − 1 φ ( p ) = p − 1 , 因此就有:
a φ ( p ) ≡ 1 ( mod p ) a φ ( p ) ≡ 1 ( mod p )
就变成了欧拉定理!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下