费马小定理是数论中的一个定理:假如a是一个整数,p是一个质数,那么
ap≡a(mod p)
如果a不是p的倍数,也可以写成
ap−1≡1(mod p)
证明
证明来自维基百科,补充一些没有证明(可能认为是显而易见的)的细节
条件 gcd(a, p) = 1
考虑 1×a,2×a,3×a,.....(p−1)×a 这p-1个数,分别模p, 结果 r1,r2,r3,.....rp−1 必然是1, 2, 3, … p-1的重新排列。
因此可得
1×2×3×...×(p−1)=(1×a)×(2×a)×(3×a)×...×((p−1)×a)(mod p)
因此
ap−1mod p=1
现在证明
1⩽k1,k2⩽p−1
, a 和 p互质
那么
k1%p≠k2%p
反证法:
y1×p+x=k1×a, y2×p+x=k2×a
二者相减
可得 (k2−k1)×a=(y2−y1)×p
假设 k2>k1 , 因为 k2<p,k1<p,k2−k1<p , 因为p是质数,所以 k2−k1 与p 互质,又因为a也与p互质,可知 (k2−k1)×a 也与p互质(后面再证),因此 (k2−k1)×a 不可能是p的整数倍,所以不存在这样的 y2,y1 使等式成立
现在证明gcd(a, p) = 1, gcd(b, p) = 1 可以推导出 gcd(a*b, p)=1
反证:
设gcd(a*b, p) = k, k>1
假设
a*b = n*k,
p = m*k
其中因为k>1, 所以 n < a*b, m < p
两个等式相除
a×bp=nm
因为gcd(a, p) = 1, gcd(b, p) = 1,所以左边等式无法约分,但是 n < a*b, m < p,所以这个等式不可能成立
结果可证