欧拉定理(Euler Theorem),也称费马-欧拉定理或欧拉函数定理,这是一个关于正整数同余的公式,表示为: a φ ( n ) ≡ 1 ( m o d n ) a^{φ(n)} \equiv1 (\mathrm{mod} \ n) aφ(n)≡1(mod n)其中, a a a 与 n n n 均为正整数,且两者互质。具体这个公式到底有什么含义,在实际中如何使用,本文将进行详细解释。
首先,欧拉定理讨论的内容是整数的操作(记为: N \mathbb{N} N),尤其是正整数( N + \mathbb{N^+} N+)相关的,所以,为了理解欧拉定理,让我们先了解一些基本概念。
若整数 m , n , k , r m, n, k, r m,n,k,r 满足 m = k × n + r m = k \times n + r m=k×n+r,且 n ≠ 0 , 0 ≤ r < n n \neq 0,0 \leq r < n n=0,0≤r<n,则称 r r r 是 m m m 对 n n n 的余数。举例来说, 13 = 2 ∗ 5 + 3 13 = 2 * 5 + 3 13=2∗5+3,其中3就是13除以5的余数。我们也可以换一种方式来表达 r = m − ⌊ b a ⌋ n r=m-\lfloor {b \over a} \rfloor n r=m−⌊ab⌋n,即 ⌊ b a ⌋ \lfloor {b \over a} \rfloor ⌊ab⌋ 表示取 a 除以 b 的整数部分。为了求余数,定义 mod 作为取余操作,如 r = m r = m r=m mod n n n,当 r = 0 r = 0 r=0 时,称 m m m 可以被 n n n 整除,记作 a ∣ b a|b a∣b。
注: ⌊ ⌋ \lfloor \rfloor ⌊⌋ 是对小数的取整数部分的操作,如 ⌊ 5 4 ⌋ = ⌊ 1.25 ⌋ = 3 \lfloor {5 \over 4} \rfloor=\lfloor 1.25 \rfloor =3 ⌊45⌋=⌊1.25⌋=3, ⌊ 3.1415926 ⌋ = 3 \lfloor 3.1415926 \rfloor =3 ⌊3.1415926⌋=3.
给定自然数n大于1,若n只能够被1和其本身整除,则n是质数(也叫素数)。如 2,3,5,7,11,13 等都是质数。
若正整数 a , b a,b a,b 都可以被 c c c 整除,则 c c c 是 a , b a,b a,b 的公约数,记作 a , b ∣ c a,b|c a,b∣c。如6是24和36的公约数。 a , b a,b a,b的公约数可以有多个,其中最大公约数记作 g c d ( a , b ) gcd(a,b) gcd(a,b) 或简化形式 ( a , b ) (a,b) (a,b)。
若 a , b a,b a,b 均为正整数且两者的公约数只有1,则称两个数互质,记为: ( a , b ) = 1 (a,b)=1 (a,b)=1。举例来说,(5,6)=1, (15, 13)=1。这里要特别注意,互质与这两个数是否为质数没有任何关系,比如 (3,5)=1 是两个质数,而(15,8)=1,则是两个合数。
给定一个正整数 m m m,如果两个整数 a a a 和 b b b 满足 a − b a-b a−b 能够被 m m m 整除,即 ( a − b ) / m (a-b)/m (a−b)/m 的结果为正整数,那么就称 a a a 与 b b b 对 模 m m m 同余,或简称为对 m m m 同余,记作 a ≡ b ( mod m ) a ≡ b \ (\textrm{mod} \ m) a≡b (mod m),其中符号 ≡ ≡ ≡ 表示同余,对模 m m m 同余是整数的一个重要等价关系。根据这个定义,我们可以知道欧拉定理是一个关于同余的定理。
设 n ∈ N + n \in \mathbb{N^+} n∈N+ ,则 φ ( n ) = ∣ A ∣ , 其 中 A = { m ∣ 1 ≤ m < n φ(n)=|A|,其中A=\{m | 1 \leq m < n φ(n)=∣A∣,其中A={m∣1≤m<n, ( m , n ) = 1 } (m, n)=1\} (m,n)=1}。
注: ∣ S ∣ | S | ∣S∣ 表示集合S元素的个数。
解释:给定一个正整数 n n n,欧拉函数就是求在 [ 1 , n ) [1, n) [1,n) 区间上,与 n n n 互质的整数的个数。举例来说,设 m = 8 m=8 m=8,则与8互质的正整数集合 A = 1 , 3 , 5 , 7 A={1, 3, 5, 7} A=1,3,5,7,此集合共有4个元素,所以 φ ( 8 ) = 4 φ(8)=4 φ(8)=4。
欧拉函数的定义域与值域有一一对应关系,即已知 m m m 可以求出唯一的 φ ( m ) \varphi(m) φ(m),但是反过来不可能,如已知 φ ( m ) = 4 φ(m)=4 φ(m)=4,除了8,结果还可以是其他值,如10(此时 A = [ 1 , 3 , 7 , 9 ] A=[1,3,7,9] A=[1,3,7,9])。所以欧拉函数的逆函数的解有多个值,尤其是当 φ ( m ) φ(m) φ(m) 的值很大时,有更多的解。这个性质很重要,在密码学中有相关的应用。
有了这个函数以后怎么计算,我们分情况讨论:
关于情况4,我们可以简单证明:
由于 p , q p, q p,q 是质数,所以与 p q pq pq 不互质的数只有两种情况:
1: p p p的整数倍: p , 2 p , 3 p , . . . , ( q − 1 ) p p, 2p, 3p, ..., (q-1)p p,2p,3p,...,(q−1)p,共 q − 1 q-1 q−1 个;
2: q q q的整数倍: q , 2 q , 3 q , . . . , ( p − 1 ) q q, 2q, 3q, ..., (p-1)q q,2q,3q,...,(p−1)q,共 p − 1 p-1 p−1 个;
所以在区间 [ 1 , p q ) [1, pq) [1,pq) 上,与 q p qp qp 互质的正整数个数 = = =比 p q pq pq 小的正整数个数 − p - p −p 的倍数 − q -q −q 的倍数
即, φ ( p q ) = ( p q − 1 ) − ( q − 1 ) − ( p − 1 ) = p q − p − q + 1 = ( p − 1 ) ( q − 1 ) \varphi(pq) =(pq-1) - (q-1)-(p-1)=pq - p - q + 1 = (p-1)(q-1) φ(pq)=(pq−1)−(q−1)−(p−1)=pq−p−q+1=(p−1)(q−1)
证毕。
我们对情况4进行扩展,可以得到更为一般的欧拉函数的计算方法:
已知 n , p n,p n,p 均为正整数,若 n = ∏ p ∣ n , 1 ≤ p < n p a p − 1 n=\prod_{p|n,1\leq p < n} p ^{a_p - 1} n=p∣n,1≤p<n∏pap−1则: φ ( n ) = ∏ ( p − 1 ) p a p − 1 … … ( E q . 1 ) \varphi(n) = \prod (p - 1 ) p^{a_p - 1} ……(Eq.1) φ(n)=∏(p−1)pap−1……(Eq.1)也可以表示为: φ ( n ) = n ∏ ( p − 1 p ) … … ( E q . 2 ) \varphi(n) =n\prod(p-{1 \over p})……(Eq.2) φ(n)=n∏(p−p1)……(Eq.2)
举例说明,设 n = 72 n=72 n=72,则 φ ( n ) = φ ( 72 ) = φ ( 8 ∗ 9 ) = φ ( 2 3 ∗ 3 2 ) \varphi(n)=\varphi(72)=\varphi(8*9)=\varphi(2^3*3^2) φ(n)=φ(72)=φ(8∗9)=φ(23∗32)。此时,我们可以使用以上两个公式分别计算:
使用 E q . 1 Eq.1 Eq.1 可得: φ ( 2 3 ∗ 3 2 ) = ( 2 − 1 ) 2 3 − 1 ∗ ( 3 − 1 ) 3 2 − 1 = 4 ∗ 6 = 24 \varphi(2^3*3^2)=(2-1) 2^{3-1} * (3-1)3^{2-1}=4*6=24 φ(23∗32)=(2−1)23−1∗(3−1)32−1=4∗6=24
使用 E q . 2 Eq.2 Eq.2 可得: φ ( 2 3 ∗ 3 2 ) = 72 ∗ ( 1 − 1 2 ) ( 1 − 1 3 ) = 72 ∗ 1 2 ∗ 2 3 = 24 \varphi(2^3*3^2)=72*(1- {1 \over 2}) (1 - {1 \over 3}) =72 * {1\over 2} * {2 \over 3} =24 φ(23∗32)=72∗(1−21)(1−31)=72∗21∗32=24
使用两种公式计算结果一致。
注1: p ∣ n p|n p∣n 表示 n n n 能被 p p p 整除。
注2: a p a_p ap 表示的是最大次方,如8可以写成 2 3 2^3 23,此时 a p a_p ap 为 3 3 3,但是不可以写成 2 2 ∗ 2 1 2^2 * 2^1 22∗21。
对任意两个正整数 a , n a, n a,n,若两者素质,则: a φ ( n ) ≡ 1 ( m o d n ) a^{φ(n)} \equiv 1 (\mathrm{mod} \ n) aφ(n)≡1(mod n)。
注:作为对比,费马小定理( a p − 1 ≡ 1 ( m o d p ) a^{p-1} \equiv 1 (\mathrm{mod} \ p) ap−1≡1(mod p),其中 p p p 为质数),实际上就是欧拉公式的特殊情况。
设与 n n n 互质的正整数集合为: Z n = { x 1 , x 2 … … x φ ( n ) } Z_n=\{x_1,x_2……x_{φ(n)}\} Zn={x1,x2……xφ(n)},共 φ ( n ) φ(n) φ(n)个元素,我们考虑再另一个集合 S = { m 1 , m 2 , … , m φ ( n ) } S=\{m_1, m_2,…,m_{φ(n)}\} S={m1,m2,…,mφ(n)},其中 m i = a ∗ x 1 ( m o d n ) m_i=a * x_1 (\mathrm{mod} \ n) mi=a∗x1(mod n),则 Z n = S Z_n= S Zn=S,这是因为:
① 因为 a a a 与 n n n 互质, m i = a ∗ x i m o d n m_i = a * x_i \ mod \ n mi=a∗xi mod n,则 m i m_i mi 与 n n n 互质;
② 当 i ≠ j i \neq j i=j 时, x i ≠ x j x_i \neq x_j xi=xj,所以 x i ( m o d n ) ≠ x j ( m o d n ) x_i (\mathrm{mod} \ n) \neq x_j (\mathrm{mod} \ n) xi(mod n)=xj(mod n),由 a , n a, n a,n 互质可得 a ∗ x i ( m o d n ) ≠ a ∗ x j ( m o d n ) a * x_i (\mathrm{mod} \ n) \neq a * x_j (\mathrm{mod} \ n) a∗xi(mod n)=a∗xj(mod n)。
设 P Z n = ∏ 1 φ ( n ) x i , P S = ∏ 1 φ ( n ) m i P_{Z_n} = \prod_1^{\varphi(n)} x_i, P_S= \prod_1^{\varphi(n)} m_i PZn=∏1φ(n)xi,PS=∏1φ(n)mi,因为 Z n = S Z_n= S Zn=S, 所以 P Z n = P S P_{Z_n} =P_S PZn=PS。
a φ ( n ) ∗ P Z n m o d n a^{\varphi(n)}*P_{Z_n} \ \mathrm{mod} \ n aφ(n)∗PZn mod n
= ( a φ ( n ) ∗ x 1 ∗ x 2 ∗ . . . ∗ x φ ( n ) ) m o d n =(a^{\varphi(n)}*x_1*x_2*...*x_{\varphi{(n)}} ) \ \mathrm{mod} \ n =(aφ(n)∗x1∗x2∗...∗xφ(n)) mod n
= ( a x 1 ∗ a x 2 ∗ . . . ∗ a x φ ( n ) ) m o d n =(ax_1*ax_2*...*ax_{\varphi{(n)}}) \ \mathrm{mod} \ n =(ax1∗ax2∗...∗axφ(n)) mod n # 将a的指数展开并分配至每个x
= ( a x 1 m o d n ) ∗ ( a x 2 m o d n ) ∗ . . . ∗ ( a x φ ( n ) m o d n ) m o d n =(ax_1 \ \mathrm{mod} \ n)*(ax_2 \ \mathrm{mod} \ n)*...*(ax_{\varphi{(n)}} \ \mathrm{mod} \ n) \ \mathrm{mod} \ n =(ax1 mod n)∗(ax2 mod n)∗...∗(axφ(n) mod n) mod n
= ( m 1 ∗ m 2 ∗ . . . ∗ m φ ( n ) ) m o d n =(m_1 * m_2*...*m_{\varphi{(n)}}) \ \mathrm{mod} \ n =(m1∗m2∗...∗mφ(n)) mod n
= P S m o d n = P Z n m o d n =P_S \ \mathrm{mod} \ n =P_{Z_n} \ \mathrm{mod} \ n =PS mod n=PZn mod n
即 a φ ( n ) ∗ P Z n m o d n = P Z n m o d n a^{\varphi(n)}*P_{Z_n} \ \mathrm{mod} \ n=P_{Z_n} \ \mathrm{mod} \ n aφ(n)∗PZn mod n=PZn mod n根据余数性质,两边可以同时消去 P Z n P_{Z_n} PZn,可得: a φ ( n ) m o d n = 1 m o d n a^{\varphi(n)} \ \mathrm{mod} \ n=1 \ \mathrm{mod} \ n aφ(n) mod n=1 mod n最终可得: a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)} \ \mathrm \equiv 1 \ (\mathrm{mod} \ n) aφ(n) ≡1 (mod n)证毕。
本文首先介绍了欧拉函数的基础知识,然后介绍了欧拉函数,欧拉定理及其证明。欧拉定理是一个重要的定理,在很多领域都有应用,比如在信息安全领域,非对称公私钥加密算法RSA就是基于欧拉定理。
[1] 余数定理,郝老师,2020/05/03.
[2] 欧拉定理,百度百科。