费马小定理
a,p∈Z+, p 为质数,gcd(a,p)=1。
定理: ap−1≡1(modp) 。
证明:
考虑下面两个整数集合:
A={x∈Z+|1≤x<p}
B={y∈Z+|y=ax,x∈A}
A 中很明显每个数对 p 取余各不相同,且为 1 到 p−1 。
假设 B 中存在两个数 y0=ax0,y1=ax1 满足:
y0≡y1(modp)
则会有:
ax0≡ax1(modp)
∵gcd(a,p)=1,所以我们有:
x0≡x1(modp)
但根据定义可知,x0,x1∈A,而 A 中不存在两个数对 p 取余相同。矛盾!
故假设不成立,B 中任意两个数对 p 取余不相同。
又 ∵gcd(a,p)=1 且 ∀x∈A,gcd(x,p)=1。
∴ B 中不存在 y 使得 y≡0(modp)。
不难发现,在模 p 意义下 A 与 B 其实是等价的。
现在把 A 中的数和 B 中的数各自相乘,得到:
(p−1)!≡ap−1(p−1)!(modp)
∵ (p−1)! 与 p 互质。∴ 可以把两边同时除以 (p−1)! 得到:
ap−1≡1(modp)
得证。
欧拉定理
a,p∈Z+, gcd(a,p)=1。
定理: aφ(p)≡1(modp) 。
证明:
考虑下面两个整数集合:
A={x∈Z+|gcd(a,p)=1,1≤x<p}
B={y∈Z+|y=ax,x∈A}
根据欧拉函数的定义可知,|A|=|B|=φ(p)。
A 中很明显每个数对 p 取余各不相同。
假设 B 中存在两个数 y0=ax0,y1=ax1 满足:
y0≡y1(modp)
则会有:
ax0≡ax1(modp)
∵gcd(a,p)=1,所以我们有:
x0≡x1(modp)
但根据定义可知,x0,x1∈A,而 A 中不存在两个数对 p 取余相同。矛盾!
故假设不成立,B 中任意两个数对 p 取余不相同。
又 ∵gcd(a,p)=1 且 ∀x∈A,gcd(x,p)=1。
∴ B 中不存在 y 使得 y≡0(modp)。
不难发现,在模 p 意义下 A 与 B 其实是等价的。
现在把 A 中的数和 B 中的数各自相乘,得到:
∏x∈Ax≡aφ(p)∏x∈A(modp)
∵ ∏x∈Ax 与 p 互质。∴ 可以把两边同时除以 ∏x∈Ax 得到:
aφ(p)≡1(modp)
得证。
扩展欧拉定理
根据欧拉定理,如果 gcd(a,m)=1,则 ab≡abmodφ(m)(modm)。
而扩展欧拉定理则说,如果 gcd(a,m)≠1 时,有:
ab≡{abb≤φ(m)abmodφ(m)+φ(m)b>φ(m)(modm)
证明 oi-wiki 上有。
这样我们就能够快速计算 abmodm 这一类问题,只用 O(logm) 的时间,而不是快速幂 O(logb)。
结论
结论1: 若最小的 x≤φ(n) 且 ax≡1(modp)(gcd(a,p)=1),则 x|φ(p)。
证明:
反证法。
设 φ(n)=gx+r(1≤r<x),则 agx+r≡1(modp)。
所以 ar≡1(modp),而 r<x,与 x 最小性矛盾,所以结论成立。
练习
题目1: 给定 P,A≤108,求出 1P 在 A 进制小数下的循环节位数(如果是纯循环小数才求,否则输出 -1)(金老师原创)
思路:
设答案为 L,我们会得到 AL≡1(modp)。
因为我们去模拟除法就会发现出现循环节意味着出现 1。
首先,若 A,P 不互质就无解。
否则,输出最小的 L 满足 AL≡1(modp)。根据结论,L|φ(p),枚举即可。
题目2: 求证:n≥1 时,2n≢1(modp)。(《具体数学》第四章 题46)
证明:
考虑 n 的最小素因子。
不妨设 n=pq,其中 p 是 n 的最小素因子。
如果 p=2,结论显然成立。
反证法,假设存在 n 使得 2n≡1(modp)。
我们在模 p 的意义下看一下上式:(2p)q≡1(modp)。
根据费马小定理,2p−1≡1(modp)。
所以我们可以得到:(2p)q≡2q≡1(modp)。
根据之前欧拉定理的结论,我们知道必然有 p−1|q。
而 q|n,所以 p−1|n。
说明 p−1 是比 p 更小的 n 的因子,与 p 的最小性矛盾!
所以命题得证。
题目3: 给定 b,p,n,求 1∼n 中有多少数 x 满足 xx!≡b(modp)。b,p≤108,n≤1018
思路:
如果 x<φ(p),我们可以直接枚举检验,复杂度 O(p)。
否则,xx!≡xx!modφ(p)+φ(p),又因为 x≤φ(p),所以 x!modφ(p)=0。
所以 xφ(p)≡b(modp),我们枚举 p 的完全剩余系看看 x 模 p 余几时是可以的,然后计算一下 n 以内这样子的数的个数即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】