1 小さい数で確かめる
例 1.1 ((n−1)!を法nで計算する).2以上のnについて(n−1)!を法nで計算すると、次のようになる。
| n |
(n−1)! |
法nでの値 |
−1と合同か |
nは素数か |
| 2 |
1 |
1 |
合同である |
素数である |
| 3 |
2 |
2 |
合同である |
素数である |
| 4 |
6 |
2 |
合同でない |
素数でない |
| 5 |
24 |
4 |
合同である |
素数である |
| 6 |
120 |
0 |
合同でない |
素数でない |
| 7 |
720 |
6 |
合同である |
素数である |
| 8 |
5040 |
0 |
合同でない |
素数でない |
| 9 |
40320 |
0 |
合同でない |
素数でない |
n=2では−1≡1(mod2)であるから、1は−1と合同である。
この表では、−1と合同になるnと素数であるnが完全に一致しています。また、素数でないnのうちn=4だけが0と合同にならず、他は0と合同になっています。以下では、前者を証明すべき主張として書き下し、後者についてはn=4が唯一の例外であることを示します。上の計算は予想を立てる手段であって、すべての場合についての証明ではありません。
2 自分自身が逆元になる元を特定する
定理 2.1 (自分自身が逆元になる元).pを素数とし、aを1≤a≤p−1を満たす整数とする。a2≡1(modp)が成り立つのは、a=1またはa=p−1の場合に限る。
証明.a2≡1(modp)は、pがa2−1=(a−1)(a+1)を割り切ることと同じである。pが素数であるから、pはa−1またはa+1を割り切る。
pがa−1を割り切る場合、0≤a−1≤p−2であるからa−1=0、すなわちa=1である。
pがa+1を割り切る場合、2≤a+1≤pであるからa+1=p、すなわちa=p−1である。
逆にa=1のときa2=1≡1であり、a=p−1のときa≡−1であるからa2≡1である。▨
3 ウィルソンの定理
定理 3.1 (ウィルソンの定理).pを1より大きい正の整数とする。pが素数であることと
(p−1)!≡−1(modp)が成り立つこととは、同値である。
証明 (素数であれば合同式が成り立つこと).pを素数とする。
p=2のときは(p−1)!=1!=1であり、法2では1≡−1であるから、主張が成り立つ。
pを奇素数とする。1≤a≤p−1を満たす整数aを取る。pはaを割り切らないので、pが素数であることから、ab≡1(modp)を満たす1≤b≤p−1が存在する。同じ範囲の整数cもac≡1(modp)を満たすなら、pはa(b−c)を割り切る。pはaを割り切らないので、pはb−cを割り切る。∣b−c∣<pであるからb=cである。したがって、aの逆元a−1は1からp−1までにただ一つ存在する。
aa−1≡1(modp)であり、逆元の一意性から(a−1)−1=aである。定理 2.1により、a=a−1となるのはa=1とa=p−1の場合に限る。したがって、1からp−1までの数のうち1とp−1以外のものは、相異なる二数aとa−1からなる互いに交わらない対へ分かれる。各対の積は法pで1と合同であるから、これらの対に属する数をすべて掛けた積も法pで1と合同である。したがって、1とp−1も含めて掛けると
(p−1)!≡1⋅1⋅(p−1)≡−1(modp)を得る。▨
証明 (合同式が成り立てば素数であること).pを1より大きい正の整数とし、(p−1)!≡−1(modp)が成り立つとする。pが素数でないと仮定すると、1<d<pを満たすpの約数dが存在する。
1<d≤p−1であるから、dは積(p−1)!=1⋅2⋯(p−1)の因数の一つであり、dは(p−1)!を割り切る。一方、仮定よりpは(p−1)!+1を割り切り、dはpを割り切るので、dは(p−1)!+1を割り切る。したがってdは差((p−1)!+1)−(p−1)!=1を割り切る。これはd>1と両立しない。よってpは素数である。▨
この議論はp=4の場合も含んでいます。d=2は3!=6を割り切るので、もし4が3!+1=7を割り切るとすれば2が1を割り切ることになり、矛盾します。実際3!=6≡2(mod4)であり、−1≡3(mod4)とは合同ではありません。
4 合成数のときに何が起きるか
例 1.1の表では、合成数nのうちn=4だけが(n−1)!≡0にならないという違いがありました。これは偶然ではありません。
定理 4.1 (合成数における階乗).nを合成数とする。n=4であれば(n−1)!≡0(modn)が成り立つ。n=4のときは3!≡2(mod4)であり、0とは合同でない。
証明.nを合成数とし、n=ab(1<a≤b<n)と書く。
a<bの場合、aとbは1からn−1までに現れる相異なる二つの数であるから、積(n−1)!はab=nを因数として含み、nで割り切れる。
a=bの場合、n=a2である。a>2であれば2a<a2=nであるから、aと2aは1からn−1までに現れる相異なる二つの数であり、(n−1)!はa⋅2a=2nを因数として含み、nで割り切れる。a=2であればn=4であり、3!=6は4で割り切れず、6≡2(mod4)である。▨
したがって、合成数nについて(n−1)!が法nで−1と合同になることはありません。n=4では0と合同であり、n=4では2と合同だからです。どちらの場合も、−1と合同であるためにはnが1または3を割り切ることになり、n≥4に反します。
5 仮定を落とすとどうなるか