若 p 为素数,gcd(a,p)=1,则 ap−1≡1(modp)。
另一个形式:对于任意整数 a,有 ap≡a(modp)。
设一个质数为 p,我们取一个不为 p 倍数的数 a。
构造一个序列:A={1,2,3…,p−1},这个序列有着这样一个性质:
i=1∏p−1 Ai≡i=1∏p−1(Ai×a)(modp)
证明:
∵(Ai,p)=1,(Ai×a,p)=1
又因为每一个 Ai×a(modp) 都是独一无二的,且 Ai×a(modp)<p
得证(每一个 Ai×a 都对应了一个 Ai)
设 f=(p−1)!, 则 f≡a×A1×a×A2×a×A3⋯×Ap−1(modp)
ap−1×fap−1≡f(modp)≡1(modp)
证毕。
也可用归纳法证明:
显然 1p≡1(modp),假设 ap≡a(modp) 成立,那么通过二项式定理有
(a+1)p=ap+(1p)ap−1+(2p)ap−2+⋯+(p−1p)a+1
因为 (kp)=k!p(p−1)⋯(p−k+1) 对于 1≤k≤p−1 成立,在模 p 意义下 (1p)≡(2p)≡⋯≡(p−1p)≡0(modp),那么 (a+1)p≡ap+1(modp),将 ap≡a(modp) 带入得 (a+1)p≡a+1(modp) 得证。
在了解欧拉定理(Euler's theorem)之前,请先了解 欧拉函数。定理内容如下:
若 gcd(a,m)=1,则 aφ(m)≡1(modm)。
实际上这个证明过程跟上文费马小定理的证明过程是非常相似的:构造一个与 m 互质的数列,再进行操作。
设 r1,r2,⋯,rφ(m) 为模 m 意义下的一个简化剩余系,则 ar1,ar2,⋯,arφ(m) 也为模 m 意义下的一个简化剩余系。所以 r1r2⋯rφ(m)≡ar1⋅ar2⋯arφ(m)≡aφ(m)r1r2⋯rφ(m)(modm),可约去 r1r2⋯rφ(m),即得 aφ(m)≡1(modm)。
当 m 为素数时,由于 φ(m)=m−1,代入欧拉定理可立即得到费马小定理。