【学习笔记】原根 + 欧拉定理 + 威尔逊定理
欧拉定理:对于互质的两个正整数 a a a 和 m m m,若 ( a , m ) = 1 (a,m) = 1 (a,m)=1,那么 a ϕ ( m ) ≡ 1 ( m o d m ) a^{\phi(m)}\equiv 1\pmod m aϕ(m)≡1(modm) 。注意 m > 1 m>1 m>1 。
根据欧拉定理我们知道, a ϕ ( m ) ≡ 1 ( m o d m ) a^{\phi(m)}\equiv 1\pmod m aϕ(m)≡1(modm) 。因此, a 1 , a 2 , . . . a^1,a^2,... a1,a2,... 这样一个数列在模 m m m 意义下将有一个长度为 ϕ ( m ) \phi(m) ϕ(m) 的循环节。
我们定义最短的循环节长度为 o r d m a ord_ma ordma 。严格地,定义 a a a 在模 m m m 的意义下的阶是同余方程 a x ≡ 0 ( m o d m ) a^x\equiv 0\pmod m ax≡0(modm) 的最小正整数解。
显然, o r d m a ord_ma ordma 一定是 ϕ ( m ) \phi(m) ϕ(m) 的因数。特别地,当 o r d m a = ϕ ( m ) ord_ma=\phi(m) ordma=ϕ(m) 时,就称 a a a 为模 m m m 下的一个原根。
并不是所有数都存在原根。正整数有原根的充要条件为:它能表示为下列形式之一: 2 , 4 , p n , 2 p n 2,4,p^n,2p^n 2,4,pn,2pn 。其中 p p p 为奇素数。
那么如何判断一个数有多少原根?如果 a a a 是 m m m 的一个原根,当且仅当 ( b , ϕ ( m ) ) = 1 (b,\phi(m))=1 (b,ϕ(m))=1 时, a b a^b ab 在模 p p p 意义下也是原根。证明如下:根据幂运算的性质, a b ∗ o r d ( a b ) ≡ 1 ( m o d m ) a^{b*ord(a^b)}\equiv 1\pmod m ab∗ord(ab)≡1(modm) 。那么底数相同,得到 ϕ ( m ) ∣ b ∗ o r d ( a b ) \phi(m)|b*ord(a^b) ϕ(m)∣b∗ord(ab) ,即是 o r d ( a b ) = ϕ ( m ) ( ϕ ( m ) , b ) ord(a^b)=\frac{\phi(m)}{(\phi(m),b)} ord(ab)=(ϕ(m),b)ϕ(m) 。当且仅当 ( b , ϕ ( m ) ) = 1 (b,\phi(m))=1 (b,ϕ(m))=1 时 o r d ( a b ) = ϕ ( m ) ord(a^b)=\phi(m) ord(ab)=ϕ(m) 。
又因为 a 1 , a 2 , . . . , a ϕ ( m ) a^1,a^2,...,a^{\phi(m)} a1,a2,...,aϕ(m) 在模 m m m 意义下互不相同,其中 a s ∣ ( s , ϕ ( m ) ) = 1 a^s|(s,\phi(m))=1 as∣(s,ϕ(m))=1 是原根,而 s s s 一共有 ϕ ( ϕ ( m ) ) \phi(\phi(m)) ϕ(ϕ(m)) 种取值,所以一共有 ϕ ( ϕ ( m ) ) \phi(\phi(m)) ϕ(ϕ(m)) 个原根(容易证明它们就是 m m m 的所有原根,因为模 m m m 最多有 ϕ ( m ) \phi(m) ϕ(m) 种取值)。
这同时启示我们,求原根时,只需要找到一个原根,就很容易得到全部原根。因为最小原根不超过 n 0.25 n^{0.25} n0.25 。
威尔逊定理:设正整数 p ≥ 2 p\geq 2 p≥2。当且仅当 p p p 是素数时, ( p − 1 ) ! ≡ p − 1 ( m o d p ) (p-1)!\equiv p-1\pmod p (p−1)!≡p−1(modp) 。否则如果 p = 4 p=4 p=4 ,那么 ( p − 1 ) ! ≡ 2 ( m o d p ) (p-1)!\equiv 2\pmod p (p−1)!≡2(modp) ;其余情况 ( p − 1 ) ! ≡ 0 ( m o d p ) (p-1)!\equiv 0\pmod p (p−1)!≡0(modp) 。注意 p = 4 p=4 p=4 要特判。
扩展欧拉定理:设 m > 1 m>1 m>1 , a a a 和 m m m 不互质,如果 b ≥ ϕ ( m ) b\geq \phi(m) b≥ϕ(m) , 那么 a b ≡ a b m o d ϕ ( m ) + ϕ ( m ) ( m o d m ) a^{b}\equiv a^{b\bmod \phi(m)+\phi(m)}\pmod m ab≡abmodϕ(m)+ϕ(m)(modm) 。
证明:考虑把 m m m 质因数分解,只要对于任意 p i q i p_i^{q_i} piqi 满足 a b ≡ a b m o d ϕ ( m ) + ϕ ( m ) ( m o d p i q i ) a^{b}\equiv a^{b\bmod \phi(m)+\phi(m)}\pmod {p_i^{q_i}} ab≡abmodϕ(m)+ϕ(m)(modpiqi) 即可。
现在再分类讨论 p i q i p_i^{q_i} piqi 。
- 若 ( p i q i , a ) = 1 (p_i^{q_i},a)=1 (piqi,a)=1 那么根据欧拉定理有 a ϕ ( m ) ≡ 1 ( m o d m ) a^{\phi(m)}\equiv 1\pmod m aϕ(m)≡1(modm) 。又因为 a b ≡ a ⌊ b / ϕ ( m ) ⌋ ∗ ϕ ( m ) + b m o d ϕ ( m ) ( m o d p i q i ) a^{b}\equiv a^{\lfloor b/\phi(m)\rfloor *\phi(m)+b\bmod \phi(m)}\pmod {p_i^{q_i}} ab≡a⌊b/ϕ(m)⌋∗ϕ(m)+bmodϕ(m)(modpiqi) ,注意到欧拉函数是 积性函数 ,所以 ϕ ( p i q i ) ∣ ϕ ( m ) \phi(p_i^{q_i})|\phi(m) ϕ(piqi)∣ϕ(m),因此上述结论是显然的。
- 若 ( p i q i , a ) ≠ 1 (p_i^{q_i},a)\neq 1 (piqi,a)=1 ,则 a a a 一定是 p i p_i pi 的倍数,注意到 ϕ ( m ) ≥ ϕ ( p i q i ) = p i q i − 1 ( p i − 1 ) ≥ q i \phi(m)\geq \phi(p_i^{q_i})=p_i^{q_i-1}(p_i-1)\geq q_i ϕ(m)≥ϕ(piqi)=piqi−1(pi−1)≥qi ,所以 p i q i ∣ a ϕ ( m ) p_i^{q_i}|a^{\phi(m)} piqi∣aϕ(m) ,同时因为 b ≥ ϕ ( m ) b\geq \phi(m) b≥ϕ(m) 所以 p i q i ∣ a b p_i^{q_i}|a^b piqi∣ab ,等式左右都为 0 所以是成立的。
证毕。
注意这个式子只对 b ≥ ϕ ( m ) b\geq \phi(m) b≥ϕ(m) 成立。(从第二条证明可以看出)。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530275.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」