第2章 STAGE 5
2つの平方数の和
1つ目の謎を解く
🎯 ミッション
4 で割って 3 余る素数が2つの平方数の和にならない理由を説明し、ウィルソンの定理 (p−1)!≡−1 から x²≡−1 (mod p) となる x を作ろう。p が x²+1=(x+i)(x−i) を割り切ることから、p=a²+b² を導ければ合格。
未達成

ねこ博士
いよいよ1つ目の謎を解こう。これまでに2つの道具がそろった。STAGE2 で示した「素数 p が2つの平方数の和で書ける ⇔ p はガウス整数の世界で既約元(これ以上分けられない数)でない」。そして前のステージで示した「ガウス整数の既約元は、どれも素元(ab を割り切れば a か b を割り切る数)」。まず易しいほうから片づけよう。4 で割って 3 余る素数は、なぜ2つの平方数の和で書けないのかな?

うさ美
平方数を 4 で割った余りを調べます。偶数は 2k と書けて (2k)²=4k² なので余り 0。奇数は 2k+1 と書けて (2k+1)²=4k²+4k+1=4(k²+k)+1 なので余り 1。平方数の余りは 0 か 1 だけです。だから2つの平方数の和の余りは 0+0, 0+1, 1+1 の 0, 1, 2 のどれかで、3 には絶対になりません。
| n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| n² | 0 | 1 | 4 | 9 | 16 | 25 | 36 | 49 |
| 4 で割った余り | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| a² の余り\b² の余り | 0 | 1 |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 1 | 2 |
平方数を 4 で割った余り。上の表:偶数の2乗は余り 0、奇数の2乗(緑)は余り 1 で、平方数の余りは 0 か 1 しかない。下の表:2つの平方数の和の余りは 0, 1, 2 のどれかで、3 にはならない

ねこ博士
そう。ここまではフェルマーの時代にも簡単だった。難しいのは、4 で割って 1 余る素数が、必ず書けることのほうだ。作戦を先に立てよう。ある整数 x について、p が x²+1 を割り切ったとする。x²+1 をガウス整数で因数分解すると?

うさ美
x²+1=x²−i²=(x+i)(x−i) です。p はこの積を割り切ります。でも、(x+i)÷p=x/p+(1/p)i で、1/p は整数ではないので、これはガウス整数ではありません。p は x+i を割り切りません。x−i も同じです。……積を割り切るのにどちらの因数も割り切らないので、p は素元ではありません! ガウス整数では既約元はどれも素元なので、p は既約元でもなく、STAGE2 の結果から、p は2つの平方数の和で書けます。

ねこ博士
その通り。だから残る仕事は、p が x²+1 を割り切るような x を見つけることだけだ。第1章の言葉で言えば、x²≡−1 (mod p) となる x だね。いくつかの p で探してごらん。

うさ美
p=5 なら 2²=4≡−1 なので x=2。p=13 なら、1, 4, 9, 16≡3, 25≡12 で、5²≡12≡−1 なので x=5。p=17 なら 4²=16≡−1 で x=4。比べるために p=7 で試すと、1², 2², …, 6² の余りは 1, 4, 2, 2, 4, 1 で、−1 にあたる 6 は出てきません。

ねこ博士
そう。4 で割って 1 余る素数ではいつも見つかり、3 余る素数では見つからない。でも p が大きいと、1 つずつ試すのは大変だ。そこで、どの p にも使える方法を作る。手がかりは意外なところにある。1 から p−1 までを全部掛けた (p−1)! を、p で割った余りを調べてごらん。p=5 と p=7 で。

うさ美
p=5 なら 4!=24=5×4+4 で、余り 4。p=7 なら 6!=720=7×102+6 で、余り 6。どちらも p−1、つまり (p−1)!≡−1 (mod p) になっています。

ねこ博士
これをウィルソンの定理という。1770年にウォーリングが弟子のウィルソンの発見として本に書き、翌1771年にラグランジュが証明した。証明には第1章の逆元を使う。mod p の世界では、1 から p−1 までのどの数 a にも、掛けて 1 になる相手 a⁻¹ がちょうど1つあったね。p=13 で、1 から 12 を「掛けて 1 になる相手」どうしでペアにしてごらん。

うさ美
2×7=14≡1、3×9=27≡1、4×10=40≡1、5×8=40≡1、6×11=66≡1。ペアは (2, 7), (3, 9), (4, 10), (5, 8), (6, 11) の5組です。残る 1 と 12 は、1×1=1、12×12=144=13×11+1≡1 で、自分自身が相手です。だから 12!≡1×(1×1×1×1×1)×12≡12≡−1 です。
逆元のペアでウィルソンの定理を見る。1 から p−1 を円周に並べ、mod p で掛けて 1 になる2つの数を線で結んだ。どの数もちょうど1本の線でつながる(第1章:逆元はちょうど1つ)。ペアの積はどれも 1 なので、(p−1)! は自分自身とペアになる数(金)だけの積になる。それは 1 と p−1 の2つだけなので、(p−1)!≡1×(p−1)≡−1

ねこ博士
そう。ペアの積は 1 だから消えて、自分自身が相手になる数だけが残る。どんな素数でも、それが 1 と p−1 の2つだけだと言えれば、ウィルソンの定理が証明できる。x×x≡1 (mod p) となる x を考えよう。

うさ美
x²≡1 なので、p は x²−1=(x−1)(x+1) を割り切ります。前のステージで、整数の素数は素元だと証明したので、p は x−1 か x+1 を割り切ります。1 から p−1 の範囲では、x−1 が p で割り切れるのは x=1、x+1 が割り切れるのは x=p−1 だけです。だから自分自身が相手になるのは 1 と p−1 だけで、残りはすべて2つずつのペアになります。(p−1)!≡1×(p−1)≡−1。どんな素数でも成り立ちます。
mod p の世界で、1, 2, …, p−1 のどの数にも、掛けて 1 になる相手(逆元)がちょうど1つある(第1章)
自分自身が相手になる x:x²≡1 → p が (x−1)(x+1) を割り切る → 素数は素元なので x−1 か x+1 を割り切る → x=1 か x=p−1
ほかの数は、相手と2つずつのペアになり、ペアの積は 1
(p−1)!≡1×(p−1)≡−1 (mod p)(ウィルソンの定理)

ねこ博士
その通り。ここでも、前のステージの「素数は素元」が効いているね。さて、ウィルソンの定理から x²≡−1 の x を作ろう。p=13 で、12! を前半 1×2×…×6 と後半 7×8×…×12 に分けてごらん。後半の数は、13 からいくつ引いた数かな?

うさ美
7=13−6、8=13−5、…、12=13−1 です。mod 13 では 13 は 0 と同じなので、7≡−6、8≡−5、9≡−4、10≡−3、11≡−2、12≡−1。後半は (−6)(−5)(−4)(−3)(−2)(−1)=(−1)⁶×6!=6! です。だから 12!≡6!×6!=(6!)²。ウィルソンの定理で 12!≡−1 なので、(6!)²≡−1 (mod 13)。6!=720=13×55+5 なので x=5 で、さっき見つけた 5²≡−1 と一致します!

ねこ博士
そう。一般の p でやってごらん。p=4k+1 として。

うさ美
(p−1)! を前半 1×2×…×(p−1)/2 と後半に分けると、後半の数は p−1, p−2, … で、それぞれ −1, −2, …, −(p−1)/2 と同じです。後半は (−1)(p−1)/2×((p−1)/2)! で、p=4k+1 なら (p−1)/2=2k は偶数なので、(−1) の偶数乗は 1 です。だから (p−1)!≡((p−1)/2)!²。ウィルソンの定理と合わせて、x=((p−1)/2)! とすれば x²≡−1 (mod p) です。……p=4k+3 だと (p−1)/2=2k+1 が奇数なので符号が残って、((p−1)/2)!²≡1 になってしまいます。
p=4k+1 のとき、(p−1)/2=2k(偶数)
(p−1)!=1×2×…×(p−1)/2 × (p−1)/2+1 × … × (p−1)
後半の数は mod p で −(p−1)/2, …, −2, −1 と同じ(p から引いた数だから)
(p−1)!≡((p−1)/2)! × (−1)2k × ((p−1)/2)!=((p−1)/2)!²(−1 の偶数乗は 1)
ウィルソンの定理と合わせて ((p−1)/2)!²≡−1 (mod p)。x=((p−1)/2)! とすれば p は x²+1 を割り切る

ねこ博士
その通り。これで証明が完成した。4 で割って 1 余る素数 p では、x=((p−1)/2)! とすると p が x²+1=(x+i)(x−i) を割り切るのに、x+i も x−i も割り切らない。だから p は素元でなく、既約元でもなく、2つの平方数の和で書ける。フェルマーの主張は正しかったんだ。
フェルマーの2平方定理奇数の素数 p について
・p が 4 で割って 1 余るなら、p は2つの平方数の和 a²+b² で書ける
・p が 4 で割って 3 余るなら、書けない
(2=1²+1² も書ける)。証明の流れ:ウィルソンの定理 → x=((p−1)/2)! で x²≡−1 → p は (x+i)(x−i) を割り切るがどちらも割り切らない → p は素元でない → 既約元でない → p=a²+b²
・p が 4 で割って 1 余るなら、p は2つの平方数の和 a²+b² で書ける
・p が 4 で割って 3 余るなら、書けない
(2=1²+1² も書ける)。証明の流れ:ウィルソンの定理 → x=((p−1)/2)! で x²≡−1 → p は (x+i)(x−i) を割り切るがどちらも割り切らない → p は素元でない → 既約元でない → p=a²+b²

うさ美
証明はできましたが、a と b が実際にいくつになるかは、まだ分かりません。p=13 なら 2²+3² と知っていますが、p が大きいと探すのが大変です。

ねこ博士
いい質問だね。互除法がそのまま使えるんだ。p は ππ' と2つの既約元(ノルムが p の数)に分かれる。p が (x+i)(x−i) を割り切るから、π は x+i か x−i のどちらかを割り切る。x−i を割り切るなら、掛け算の式の i をすべて −i に変えても式は成り立つから、π の i を −i に変えた数(これもノルム p)が x+i を割り切る。どちらにしてもノルム p の数が p と x+i の両方を割り切る。p と x+i に互除法をすると、最後の余り d は「p×(ガウス整数)+(x+i)×(ガウス整数)」の形だから、両方を割り切るその数で d も割り切れる。一方で d は p を割り切り、p が x+i を割り切らないので d は p そのものではない。だから d のノルムはちょうど p になって、d=a+bi から p=a²+b² が読み取れる。p=13、x=5 でやってごらん。

うさ美
13÷(5+i)=13(5−i)/26=(5−i)/2=2.5−0.5i。いちばん近いガウス整数のひとつとして q=3 を選ぶと、余りは 13−3(5+i)=−2−3i で、ノルム 4+9=13 は N(5+i)=26 より小さいです。次に (5+i)÷(−2−3i)=(5+i)(−2+3i)/13=(−10+15i−2i+3i²)/13=(−13+13i)/13=−1+i で割り切れました。最後の余りは −2−3i で、13=2²+3² です!
2つの平方数を互除法で見つける。p を選ぶと、まず x=((p−1)/2)! を p で割った余りを求め、x²≡−1 を確かめる。次に p と x+i にガウス整数の互除法を行う(商は割り算の答えにいちばん近いガウス整数)。最後の 0 でない余り a+bi のノルムが p になり、p=a²+b² が読み取れる

ねこ博士
そう。1640年にフェルマーが手紙に書いた主張は、整数の問題なのに、ガウス整数の世界の一意性を使うと、こうして証明できる。整数より広い世界を見ることで、整数の性質が分かったんだ。ところが、どの世界でもうまくいくわけではない。次のステージでは、2つ目の謎、a+b√−5 の世界を調べよう。
【このステージの成果】
平方数を 4 で割った余りは 0 か 1 → 2つの平方数の和は 4 で割って 3 余らない
p が x²+1=(x+i)(x−i) を割り切るのに x±i を割り切らない → p は素元でない → 既約元でない → p=a²+b²
ウィルソンの定理 (p−1)!≡−1 (mod p):逆元どうしのペアの積は 1。自分自身が相手になるのは 1 と p−1 だけ(素数は素元だから)
p=4k+1 なら後半の数を −1, −2, … と見て ((p−1)/2)!²≡−1。例:6!≡5、5²≡−1 (mod 13)
フェルマーの2平方定理:4 で割って 1 余る素数は2つの平方数の和。p と x+i の互除法で a, b が求まる(13 → −2−3i → 13=2²+3²)
確認クイズ
Q1. 4 で割って 3 余る数が、2つの平方数の和で書けない理由は?
正解! (2k)²=4k² は余り 0、(2k+1)²=4(k²+k)+1 は余り 1。和の余りは 0, 1, 2 で、3 にはならない。
Q2. mod 13 で、1 から 12 のうち自分自身が逆元(x×x≡1)になる数は?
正解! x²≡1 なら 13 が (x−1)(x+1) を割り切り、素数は素元なので x−1 か x+1 を割り切る。1〜12 では x=1, 12 だけ。
Q3. p=4k+1 のとき、x²≡−1 (mod p) となる x として使えるものは?
正解! (p−1)! の後半の数は −1, −2, … と同じで、個数 (p−1)/2=2k が偶数なので符号が消え、(p−1)!≡((p−1)/2)!²。ウィルソンの定理でこれが −1。