ウィルソンの定理

ウィルソンの定理（ウィルソンのていり、）は初等整数論における素数に関する次のような定理である。
"p" が大きくなるにつれて計算量が膨大になるため、素数かどうかを判定するために用いるには実用的ではない。
歴史.
この定理は、10世紀のペルシャの数学者イブン・アル・ハイサム（アルハゼン）によって最初に発見された。しかし、ヨーロッパでは長いこと知られず、イギリスのエドワード・ウェアリングの弟子だったジョン・ウィルソンによって発見され、1770年にウェアリングによって公表され、「ウィルソンの定理」の名がついた。しかしウェアリングもウィルソンもこの定理の証明はできず、1773年にラグランジュが最初の証明をした。なお、ゴットフリート・ライプニッツがその一世紀前に結果に気がついていたという証拠があるが、ライプニッツはそれを公表しなかった。
例.
"n" の値が 2 から 30 までの階乗と剰余の例をあげる。"m" を "n" で割った剰余を "m" mod "n" と表記する。"n" が素数の場合は背景色をピンクに、"n" が合成数の場合は背景色をグリーンにして表示する。
証明.
原始根を用いた証明.
"p" = 2 の場合は明らかに成り立つので、以下 "p" は奇素数とする。"p" は素数だから法 "p" に関する原始根 "a" が存在する。このとき、フェルマーの小定理より、
"a"は原始根だから、"a"1, "a"2, ..., "a""p"−1(≡1) はそれぞれ "p" を法として還元すると、1, 2, ..., "p" − 1 の並べ替えである。よって、
となる。一方、
が成り立つ。"b" = "a""p"("p"−1)/2 とおくと、"b"2 ≡ 1 (mod "p") だから "b" ≡ ±1 (mod "p") である。示したいのは "b" ≡ −1 (mod "p") なので "b" ≡ 1 (mod "p") と仮定して矛盾を導く。"a" は原始根だから、フェルマーの小定理より、"p"("p" − 1)/2 は "p" − 1 で割り切れる。ゆえに "p"/2 は整数となるが、これは "p" が奇数であることに反する。
逆に、"n" > 1 を合成数とすると、"n" はある素数 2 ≤ "q" < "n" で割り切れるので、("n" − 1)! ≡ 0 (mod "q") である。もし ("n" − 1)! ≡ −1 (mod "n") とすると、("n" − 1)! ≡ −1 (mod "q") となるから矛盾する。（証明終）