数学オリンピック / 数論

Wilsonの定理

Wilsonの定理は、素数と階乗をつなぐ定理です。 実用的な素数判定には重いですが、合同式の見方を深めるのに役立ちます。

定理

\(p\) が素数なら

\[(p-1)!\equiv-1\pmod p\]

が成り立ちます。逆も真で、この式が成り立つとき \(p\) は素数です。

使いどころ

  • 素数らしさを合同式で言い換えるとき
  • 逆元のペア分解を使う証明の練習
  • 階乗を含む合同式の整理

証明(素数なら成り立つ)

証明を見る

\(1,2,\dots,p-1\) の各数は \(p\) を法として逆元を持ちます。 自分自身が逆元になるのは \(x^2\equiv1\pmod p\) を満たす \(x\equiv1,-1\) だけです。

それ以外は \(x\) と \(x^{-1}\) をペアにでき、 それぞれの積は \(1\) です。 したがって全部の積 \((p-1)!\) では \(1\) と \(p-1\equiv-1\) だけが残ります。

\[(p-1)!\equiv1\cdot(-1)\equiv-1\pmod p\]

素数判定との関係

「\((n-1)!\equiv-1\pmod n\) なら \(n\) は素数」という判定ができます。 ただし \((n-1)!\) が大きすぎるので、計算としては普通使いません。

例題

例1

\(6!\) を \(7\) で割った余りを求めます。

\(7\) は素数なので \(6!\equiv-1\equiv6\pmod7\)。

例2

\(10!+1\) は \(11\) で割り切れるか調べます。

\(10!\equiv-1\pmod{11}\) より \(10!+1\equiv0\pmod{11}\)。割り切れます。

例3

\((p-2)!\pmod p\) を \(p\) 素数で求めます。

Wilsonより \((p-1)(p-2)!\equiv-1\pmod p\)。\(p-1\equiv-1\) なので \((p-2)!\equiv1\pmod p\)。

ありがちな失敗

  • 合成数でも \((n-1)!\equiv-1\) になると誤解する
  • 逆元ペアで \(1\) と \(-1\) の扱いを忘れる
  • 素数判定として高速だと思い込む

次に学ぶもの

  • Fermatの小定理による判定
  • オイラーの \(\varphi\) 関数
  • 群論的な見方(有限群の積)