Wilson定理
对于自然数n>1,当且仅当n是素数时,(n−1)!≡−1(modn).
证明:先证对素数p有(p−1)!≡−1(modp).
p=2,3时显然,当p>3时,Fp:=Z/pZ为域,非零元皆有乘法逆元.
考虑a2≡1(modp)⇒0≡a2−1≡(a+1)(a−1)(modp)⇒a=1,p−1
故Fp∖{0,1,p−1}中所有元素乘积为1,进而有Fp中所有非零元素之积为−1
另一方面,当n为合数时,假设(n−1)!≡−1(modn),即存在整数k使得(n−1)=kn−1成立。因为n是合数,必然存在素数p<n使得n=pm,所以(n−1)!=kpm−1≡−1(modp)。但乘积(n−1)!中必然已出现过p,故而一定有(n−1)!≡0(modp),矛盾。
Lucas定理
对于素数p,有(kn)≡(⌊pk⌋⌊pn⌋)(kmodpnmodp)(modp)
其中,当n<k时,二项式系数(kn)规定为0.
证明:考虑(np)modp的取值,(np)=n!(p−n)!p!.当n=0,p时,分母中没有因子p,但分子中有因子p,且二项式系数为整数,故必为p的倍数;而当n=0,p时(np)=1,于是
(np)={0,1,n=0,pn=0,p(modp)
则有
(x+y)p≡xp+yp(modp).
接下来有
(1+x)n=(1+x)p⌊n/p⌋(1+x)nmodp≡(1+xp)⌊n/p⌋(1+x)nmodp(modp).
考虑两侧的xk系数
LHS=(kn)modp.对于右侧,对k作唯一的带余除法k=p⌊pk⌋+(kmodp),因此,RHS=(⌊pk⌋⌊pn⌋)(kmodpnmodp)modp.得证.
推论:设n,m∈Z≥1有p进制展开n=∑k≥0akpk,m=∑k≥0bkpk,则
(mn)≡k≥0∏(bkak)(modp).
此即不断应用Lucas定理展开尽的结果,这里另外给出一个证明。
证:由(x+y)p=xp+yp(modp).在多项式环Fp[x]中有
(x+1)n=k≥0∏(xpk+1)ak=k≥0∏(hk=0∑p−1(hkak)xhkpk)
观察两侧xm的系数,再由p进制展开的唯一性即得证.