§C3.5ウィルソンの定理

最終更新

ウィルソンの定理は、11より大きい正の整数ppが素数であることと、(p−1)!≡−1(modp)(p-1)!\equiv-1\pmod pが成り立つことが同値であると述べます。階乗の合同式によって素数であるかどうかを特徴づける定理です。

1 小さい数で確かめる

例 1.1 ((n−1)!(n-1)!を法nnで計算する).22以上のnnについて(n−1)!(n-1)!を法nnで計算すると、次のようになる。

nn (n−1)!(n-1)! 法nnでの値 −1-1と合同か nnは素数か
22 11 11 合同である 素数である
33 22 22 合同である 素数である
44 66 22 合同でない 素数でない
55 2424 44 合同である 素数である
66 120120 00 合同でない 素数でない
77 720720 66 合同である 素数である
88 50405040 00 合同でない 素数でない
99 4032040320 00 合同でない 素数でない

n=2n = 2では−1≡1(mod2)-1 \equiv 1 \pmod 2であるから、11は−1-1と合同である。

この表では、−1-1と合同になるnnと素数であるnnが完全に一致しています。また、素数でないnnのうちn=4n = 4だけが00と合同にならず、他は00と合同になっています。以下では、前者を証明すべき主張として書き下し、後者についてはn=4n = 4が唯一の例外であることを示します。上の計算は予想を立てる手段であって、すべての場合についての証明ではありません。

2 自分自身が逆元になる元を特定する

定理 2.1 (自分自身が逆元になる元).ppを素数とし、aaを1≤a≤p−11 \le a \le p-1を満たす整数とする。a2≡1(modp)a^2 \equiv 1 \pmod pが成り立つのは、a=1a = 1またはa=p−1a = p-1の場合に限る。

証明.a2≡1(modp)a^2 \equiv 1 \pmod pは、ppがa2−1=(a−1)(a+1)a^2 - 1 = (a-1)(a+1)を割り切ることと同じである。ppが素数であるから、ppはa−1a - 1またはa+1a + 1を割り切る。

ppがa−1a-1を割り切る場合、0≤a−1≤p−20 \le a - 1 \le p-2であるからa−1=0a - 1 = 0、すなわちa=1a = 1である。

ppがa+1a+1を割り切る場合、2≤a+1≤p2 \le a + 1 \le pであるからa+1=pa + 1 = p、すなわちa=p−1a = p-1である。

逆にa=1a = 1のときa2=1≡1a^2 = 1 \equiv 1であり、a=p−1a = p-1のときa≡−1a \equiv -1であるからa2≡1a^2 \equiv 1である。▨

3 ウィルソンの定理

定理 3.1 (ウィルソンの定理).ppを11より大きい正の整数とする。ppが素数であることと

(p−1)!≡−1(modp)(p-1)! \equiv -1 \pmod p

が成り立つこととは、同値である。

証明 (素数であれば合同式が成り立つこと).ppを素数とする。

p=2p = 2のときは(p−1)!=1!=1(p-1)! = 1! = 1であり、法22では1≡−11 \equiv -1であるから、主張が成り立つ。

ppを奇素数とする。1≤a≤p−11 \le a \le p-1を満たす整数aaを取る。ppはaaを割り切らないので、ppが素数であることから、ab≡1(modp)ab \equiv 1 \pmod pを満たす1≤b≤p−11 \le b \le p-1が存在する。同じ範囲の整数ccもac≡1(modp)ac \equiv 1 \pmod pを満たすなら、ppはa(b−c)a(b-c)を割り切る。ppはaaを割り切らないので、ppはb−cb-cを割り切る。∣b−c∣<p|b-c|<pであるからb=cb=cである。したがって、aaの逆元a−1a^{-1}は11からp−1p-1までにただ一つ存在する。

aa−1≡1(modp)a a^{-1}\equiv1\pmod pであり、逆元の一意性から(a−1)−1=a(a^{-1})^{-1}=aである。定理 2.1により、a=a−1a=a^{-1}となるのはa=1a=1とa=p−1a=p-1の場合に限る。したがって、11からp−1p-1までの数のうち11とp−1p-1以外のものは、相異なる二数aaとa−1a^{-1}からなる互いに交わらない対へ分かれる。各対の積は法ppで11と合同であるから、これらの対に属する数をすべて掛けた積も法ppで11と合同である。したがって、11とp−1p-1も含めて掛けると

(p−1)!≡1⋅1⋅(p−1)≡−1(modp)(p-1)! \equiv 1 \cdot 1 \cdot (p-1) \equiv -1 \pmod p

を得る。▨

証明 (合同式が成り立てば素数であること).ppを11より大きい正の整数とし、(p−1)!≡−1(modp)(p-1)! \equiv -1 \pmod pが成り立つとする。ppが素数でないと仮定すると、1<d<p1 < d < pを満たすppの約数ddが存在する。

1<d≤p−11 < d \le p-1であるから、ddは積(p−1)!=1⋅2⋯(p−1)(p-1)! = 1 \cdot 2 \cdots (p-1)の因数の一つであり、ddは(p−1)!(p-1)!を割り切る。一方、仮定よりppは(p−1)!+1(p-1)! + 1を割り切り、ddはppを割り切るので、ddは(p−1)!+1(p-1)! + 1を割り切る。したがってddは差((p−1)!+1)−(p−1)!=1\bigl((p-1)! + 1\bigr) - (p-1)! = 1を割り切る。これはd>1d > 1と両立しない。よってppは素数である。▨

この議論はp=4p = 4の場合も含んでいます。d=2d = 2は3!=63! = 6を割り切るので、もし44が3!+1=73! + 1 = 7を割り切るとすれば22が11を割り切ることになり、矛盾します。実際3!=6≡2(mod4)3! = 6 \equiv 2 \pmod 4であり、−1≡3(mod4)-1 \equiv 3 \pmod 4とは合同ではありません。

4 合成数のときに何が起きるか

例 1.1の表では、合成数nnのうちn=4n = 4だけが(n−1)!≡0(n-1)! \equiv 0にならないという違いがありました。これは偶然ではありません。

定理 4.1 (合成数における階乗).nnを合成数とする。n≠4n \ne 4であれば(n−1)!≡0(modn)(n-1)! \equiv 0 \pmod nが成り立つ。n=4n = 4のときは3!≡2(mod4)3! \equiv 2 \pmod 4であり、00とは合同でない。

証明.nnを合成数とし、n=abn = ab(1<a≤b<n1 < a \le b < n)と書く。

a<ba < bの場合、aaとbbは11からn−1n-1までに現れる相異なる二つの数であるから、積(n−1)!(n-1)!はab=nab = nを因数として含み、nnで割り切れる。

a=ba = bの場合、n=a2n = a^2である。a>2a > 2であれば2a<a2=n2a < a^2 = nであるから、aaと2a2aは11からn−1n-1までに現れる相異なる二つの数であり、(n−1)!(n-1)!はa⋅2a=2na \cdot 2a = 2nを因数として含み、nnで割り切れる。a=2a = 2であればn=4n = 4であり、3!=63! = 6は44で割り切れず、6≡2(mod4)6 \equiv 2 \pmod 4である。▨

したがって、合成数nnについて(n−1)!(n-1)!が法nnで−1-1と合同になることはありません。n≠4n \ne 4では00と合同であり、n=4n = 4では22と合同だからです。どちらの場合も、−1-1と合同であるためにはnnが11または33を割り切ることになり、n≥4n \ge 4に反します。

5 仮定を落とすとどうなるか

注意 5.1 (素数であるという仮定が使われる箇所).定理 3.1の「素数であれば合同式が成り立つこと」の証明は、ppが素数であるという仮定を二箇所で用いている。第一に、11からp−1p-1までのすべての数に逆元がただ一つ存在することである。法66では22の逆元が存在しない。2b≡1(mod6)2b \equiv 1 \pmod 6の左辺はつねに偶数だからである。第二に、定理 2.1の証明で、ppが(a−1)(a+1)(a-1)(a+1)を割り切ることからppがa−1a-1またはa+1a+1を割り切ると結論した箇所である。合成数ではこの推論は通らない。実際、法88では32=9≡13^2 = 9 \equiv 1であり、33は11でも77でもない。

注意 5.2 (素数判定への用い方).定理 3.1は同値であることを主張しているので、原理としては素数判定に用いることができる。ただし(p−1)!(p-1)!を法ppで求めるにはp−2p-2回の乗法が必要であり、必要な計算の回数はppに比例して増える。

前提記事