Day. 12 壊れない数のままでいて
今回のテーマとなるフェルマーの二平方和定理は、別名「フェルマーのクリスマス定理」とも呼ばれているそうです。ガウス整数と密接に繋がっていたり、一つの文だけで終了する証明もあったりして、数論の定理の中でも非常に魅力的な題材の一つです。今回は“平方剰余”の話を絡めて、遊び感覚で定理の中身を解き明かします。
そして、前回ちょこっと登場したあの新キャラが、本格的に絡んできます。
「蘭子先輩、こんな感じでどうでしょう?」
「うーん、そうだな……」
6月も下旬に入り、近づく夏の気配をじわじわと感じられるようになった頃、数学研究クラブ、通称マス部では、とある作業が大詰めを迎えていた。
わたし、鈴原茉莉が発表者としてエントリーした科学研究発表会は、発表資料一式の提出期限が7月22日となっている。すでに募集は始まっていて、まだ締切まで一ヶ月近くあるにもかかわらず、いくつかの学校はもうエントリーと資料提出を済ませているらしい。資料やスライドは締切までに何度でも再提出が可能だから、ある程度まで作ったものを早めに出しておき、ギリギリまで内容の調整を続ける所が多いそうだ。
早めに審査員へ研究内容を把握させ、ブラッシュアップしていく様を再提出の形で見せることで、研究を念入りに行なっていると印象づける狙いがある、と蘭子は語っていた。実際、上位の賞を獲得している研究は、締切からだいぶ早い段階で、第一稿が提出されていることが多いという。もっとも、審査員が見るのは最終的な完成品だから、印象づけるという狙いが当たっているとは言い難いが。
そしてわたしもまた、早い段階で発表資料を作り、提出しようと試みている一人である。学会のような本格的なものではないけれど、大勢が参加する研究発表自体が初めてなので、早めにスライドや資料を作っておき、発表の練習時間を多く確保した方がいいと、先輩たちに言われたのだ。
本日は、最初に提出する資料の推敲をしている。経験者である蘭子からアドバイスを受けながら、発表資料として恥ずかしくないものに仕上げるわけだが、これがなかなか手間のかかる作業なのだ。
「本家のゴールドバッハ予想から、今回の予想を着想する流れは、もう少し簡潔に書けると思うよ。何となくそう思えた、という感覚を具体的に説明しようとすると冗長になるから、スペースの限られている資料には、なるべく事実だけを書くようにしようか」
「実際に思いついた経緯を、その通りに書いてはいけないのですか?」
「研究発表は苦労話を語る場ではないからね。ぶっちゃけそういう居酒屋トークには誰も興味ないから」
「せめて懇親会とかにしましょうよ……未成年なんですから」
「懇親会ねぇ……そんなものあったっけ」
おい経験者。首をかしげる蘭子に、思わず投げかけようとしたツッコミを飲み込む。この科学研究発表会に懇親会みたいな集まりがあるのかどうか、教えてくれたのは杏里だった。
「一応あったけど、蘭子ちゃん、興味ないから参加しなかったのよ。別に強制ではなかったし」
「同好の士を見つけるいい機会だったのでは?」
「数学を題材にして参加したのは蘭子ちゃんだけだったし……」
ああ、そもそも同好の士がいなかったのか。科学研究の範疇には収まっていても、題材として数学を選ぶ人は本当に少数派だったようだ。
「どうせ数学についてディープに語れる人はいないからって、一人で先に部室へ戻って来ちゃってね。それからわたしや先輩たちを巻き込んで、いつものように数学トークに花を咲かせて、その日はそれで終わったの」
「結局いつもと同じなんですね……というか、むしろ部室が懇親会みたいなものになってません?」
「下手に高校数学の範囲外に明るいものだから、部室以外で和やかに数学トークできる場所がなかったのよね」
つくづくニッチな界隈だなぁ……なんて思っていると、ずっと部室のノートパソコンを見つめていた蘭子がわたしに呼びかける。
「ねえ、茉莉……このグラフ、点描じゃなく折れ線に変えられない? あと縦軸のスケールは10分の1くらいに縮めた方が、収まりがよくなるよ。スカスカの図表で紙面を埋めると、サボってるように見えるし」
「これでもエクセルで必死に作ったんですけど!?」
「私にキレられてもな……」
肩をすくめる蘭子に、それを見て苦笑する杏里。なるほど確かにわたしの苦労話をまともに聞く人は皆無のようだ。
学術的な発表なんて一度もしたことがないわたしにとって、初めての発表準備は苦難の連続。まだまだ先は長そうである……。
そうしていると、部室のドアが開かれた。入って来たのは一人の女性教師。
「あっ、三人揃ってるね。お疲れじゃないだろうけどお疲れさん」
「一言余計ですよ、荒川先生」
さらっと暇人扱いしてきた女性教師に、杏里が微笑みを絶やさずに突っ込んだ。
荒川千百合、つばき学園高校で現代文を担当している教師だが、なぜかマス部の顧問に宛がわれている。まだギリギリ二十代の女性で、背丈も生徒より低いということもあって、なめられているのではないかと以前に本人が語っていた。
わたしは入部初日に部室で顔を合わせているが、それ以来ほとんど部室で会っていない。一年生の現代文を担当しているから、教室では定期的に顔を見ているけど。要するに、滅多に部室に来ないのだ。
「実際、駄弁ってるだけで活動らしい活動なんてしてないでしょ、あなたたち」
「数学談義は知性とロジックの拡張、マス部の立派な活動ですよ!」
「その言い訳は聞き飽きました」
蘭子がキメ顔で数学トークの重要性を訴えても、現代文の教師には響かなかった。まあ、数学の変人ばかりが集まるマス部で、こういう数学に暗い顧問は、バランスの面ではいいのかもしれないが。
「鈴原さん、発表会の準備の進捗はどう?」
「苦戦してますねぇ。締切まで一ヶ月あるからまだ余裕がありますけど、さっきもグラフの作り直しを提案されたところで……他人に見せる資料を作るのって、めちゃくちゃ大変なんですね」
「そうなのよ、分かるわぁ」
「私立学校の先生が言うとかなり実感こもりますね」
腕を組んでうんうんと頷く荒川先生を見て、杏里が言った。
つばき学園高校は私立なので、公立ではほぼ一本化されている教育指導の内容が、独自のものとなっている。ある程度教師の裁量に任せられる分、授業の資料作りには相当な手間と労力が伴う。だからわたしが資料作りで苦労していることに共感できるのだ。
「及川さんも軽部さんも、先輩としてきちんとサポートしてくださいね。あなたたちはどうせ暇なんですから」
「先生、オブラートくらい持ち合わせてください」
「そういえば、今年の発表会に参加するのは鈴原さんだけ? 二人は去年の研究の続きとかはしないの?」
「そうですね、今年は茉莉のサポートに回ることにしようかと。茉莉は数学に関してはほぼ初心者なので、教える時間の方が大半ですから」
「その割りにわたしの研究を手伝おうとはしませんよね、蘭子先輩」と、文句を言うわたし。「杏里先輩はプログラミング関係で何度も手伝ってくれましたよ」
「まあ、分野的には杏里の方が、茉莉の研究している内容に近いからな。ガウス整数は複素数の世界で定義される数とはいえ、その本質は通常の素数の性質でもあるからな」
忘れた人のために補足すると、ガウス整数とは、複素数の中でも、実部と虚部の両方が整数となっている数のことです。杏里が去年、研究のテーマに選んだのが、このガウス整数なのだ。
これを聞いた荒川先生の反応が、こちら。
「えっ、そうなの!?」
おい顧問。
去年もマス部の顧問だったはずなのに、部員の研究内容をきちんと把握していなかった荒川先生に、わたし達は心の中で揃ってツッコミを入れた。
瞠目して口元に手を当てながら、荒川先生は弁解を始める。
「いやー、複素数とか素数のことは、とりあえず顧問として知識は得ていたけど、どっちも関係あるなんて知らなくて……」
「まあ高校数学の範囲外だから、現代文の先生が知らなくても無理はないですけど……杏里の研究内容について、報告はしてますよね? 報告書、読んでなかったんですか?」
「ざ、ざっと把握しておけば困らないかと思って……ほら、実際特に仕事には支障なかったわけだし」
「本当に部活動の細かい所までは一切ノータッチで押し切るつもりなんですね」
「…………」
荒川先生の引きつった苦笑いも限界に達し、悲痛な叫びが飛び出した。
「しょうがないでしょ! 自慢じゃないけど私、学生時代の数学の成績はめっちゃ悲惨だったんだから! 話を聞くだけで眠くなるのよ!」
本当に自慢じゃねぇ。
「それなのにマス部の顧問なんですか?」
「私だってどうしてこうなったのか知りたいわよ!」
ついには床に四つん這いになって、項垂れてわんわんとわめき散らす始末。
「本当は文芸部とかの顧問がよかったのに、この学園に来た時点で文芸部は小平先生が担当していていたし、ちょうどマス部の顧問が退任したタイミングだったせいで、ろくすっぽ詳しくないのに宛がわれてしまうし、そもそも変な部活が多いから他の先生たちも手が空いていなかったし……もう何なのよこの学校!」
いろいろ大変なんだなぁ、先生も。あまりに情けない醜態を見せつけられているせいで、同情する前に呆れてしまうけれど。それは先輩たちも同じだったようで、荒川先生の嘆き節が落ち着いたところで、別の話に移ることにした。わたしは杏里に尋ねる。
「それで、ガウス整数って、どんなふうに素数と関係するんですか?」
「無視しないで!」
荒川先生の叫びは無視された。
「ガウス整数まで範囲を広げると、通常の素数も分解できることがあるって、前に話したよね」
「はい」
「えっ!? 素数ってそれ以上分解されないんじゃなかった!?」
「先生いいリアクションしますねぇ。入部当初の茉莉みたいだ」
……うん、かつてのわたしもこんな感じだった気がする。本当に染まってきたなぁ、わたし。
「以前にも例は示したけど、ガウス整数を使って分解できる素数は、こんなのがあるよ」
杏里はホワイトボードに式を書き込んで見せた。
2 = (1+i)(1-i)
5 = (1+2i)(1-2i)
13 = (2+3i)(2-3i)
17 = (1+4i)(1-4i)
29 = (2+5i)(2-5i)
「こうして改めて見ると、どれも虚部の符号が違うだけの複素数をかけ合わせていますね」
「虚部の符号が異なる複素数のことを、“共役”の複素数と呼ぶんだ。これは、同じ二次方程式の解になる複素数の関係を指す言葉なんだよ」
蘭子が解説する。ちなみに“共役”はn次方程式全般に使われる言葉なので、虚部の符号が異なる複素数の関係は、正確には“二次の共役”と呼びます。
「共役な複素数同士は、足し合わせてもかけ合わせても実数になるんだよ」
(a+bi)+(a-bi) = 2a
(a+bi)(a-bi) = a^2+b^2
「かけ算の方は、複素数の割り算の時にも使ったやり方ですね」
複素数の割り算では、根号を含んだ割り算と同様に、(a+b)(a-b)=a^2-b^2という展開公式を使って、分母から虚数を消していたことを思い出した。
そしてわたしは気づく。
「あれ? ということは、ガウス整数の積で表せることと、二つの二乗数の和で表せることは、一緒ってことですか」
「そういうことになるわね」と、杏里。「だからガウス整数を考えるときは、普通の整数を二つの二乗数の和で表せるかどうかが鍵になるの。その判定条件が、『フェルマーの二平方和定理』よ」
フェルマーの二平方和定理……
①素数は、4で割った余りが“3以外”のとき、またその時に限り、二つの二乗数の和で表せる。
②合成数は、4で割った余りが“3”の素因数が偶数個のとき、またその時に限り、二つ以下の二乗数の和で表せる。
「フェルマーって確か、合同式の価値を高めたという数学者の一人ですよね」
「17世紀フランスの数学者だな。もっとも本職は法律家なんだけど……公表していないメモ書き程度の公式や定理がいくつもあって、それらが死後に発見されて日の目を見たんだ。二平方和定理もその一つだよ。だけどその大多数に証明が併記されていないものだから、オイラーを始め、後の時代の数学者たちが必死になって証明を試みたんだ。二平方和定理を実際に証明したのもオイラーだよ」
「はあ……謎を作るだけ作っておいて答えを残さないとか、とんでもねー無責任野郎じゃないですか」
「当代随一の天才になんて言い草……」
「フェルマーの発想力は確かに天才的だけど、たぶん性格は結構ひねくれていたと思うよ。背理法とかじゃんじゃん使っていたし」
「あー、納得」
「納得するのかよ……」
柔和な笑みで毒を吐く杏里の言い分と、背理法に散々苦しめられたわたしの反応に、蘭子は呆れて肩を落とす。わたしにとって背理法は、ひねくれ者が好むやり方なのだ。
しかし蘭子いわくフェルマーは、オイラーが頭角を現すまでほぼ一人でヨーロッパの数学を牽引してきた人物なので、決してあしざまな評価をしていいわけではない。蘭子などは数学者としての実績を重視するから、たとえ性格に難があろうと関係ないのだ。
とはいえ、以前に沼倉も言っていたが、証明可能なことは証明なしで信じてはならないのが数学だから、公式などを見つけておいて証明を残さないのは、どうかとも思うのだが。
「……と思うのですが」
「うんまあ、そこは色んな考え方があってもいいだろうけど、質の高い予想を立てられるのも大事なことだからな?」
それはそうか。予想を立てること自体も立派な発明だと、蘭子も以前に言っていたし、わたしの研究がまさにそういうものだから、あまり人のことは言えないか。
「さて、話は戻るが……二平方和定理の二つの主張は、どちらもある重要な概念を利用して証明できる。それが、“平方剰余”というものだ」
「平方剰余……何だか難しそうな響きですね」
「いや? 概念そのものはシンプルよ。平方剰余って、『二乗数を何かで割った余り』のことだから」
あれ、意外と読んで字の如くの意味だった。拍子抜けしているわたしに、杏里が呼びかける。
「茉莉ちゃん、前にわたしが出した宿題、覚えてる?」
「宿題って確か……こんな式を満たす自然数aとbを求めよ、ってやつですよね」
a^2+b^2=1908
(詳しくはafter Day.8を見よう)
「そうそう」
「そっか、あれも考えてみれば、自然数を二つの二乗数の和で表す問題ですよね」
「1908は分解すると2^2×3^2×53だから、二平方和定理の②の条件に合致しているわね。ところで、この問題を解くときに、mod3やmod4で二乗数がどうなるか調べたよね」
「はい。mod3でもmod4でも、二乗数は0か1の二通りだけでした」
「そんな感じで、二乗数を何かで割った余りは、実は結構限られているのよ。例えば5や7でいえば……」
(mod5の場合)
1^2≡1, 2^2≡4, 3^2≡4, 4^2≡1
(mod7の場合)
1^2≡1, 2^2≡4, 3^2≡2, 4^2≡2, 5^2≡4, 6^2≡1
「mod5だと2と3がないですし、mod7だと3と5と6がないですから、半分くらいしかないんですね」
「つまり、二乗数を何かで割った余りになる数と、ならない数があるってこと。二乗数をnで割った余りになる数を、『nを法とする平方剰余』、ならない数を『nを法とする平方非剰余』と呼ぶの」
例えば、
0,1,4 … 5を法とする平方剰余
2,3 … 5を法とする平方非剰余
「なるほど……で、これがさっきの二平方和定理とどう関係してくるんですか」
「うーん、これは一言で説明できる話ではないからね……まずは簡単に、定理の①の半分を示してみましょうか」
「半分?」
「①の内容は、『素数pが二つの二乗数の和で表せる』ことと、『pを4で割った余りが3でない』ことが、同値……つまりA→BとB→Aの両方が成り立つということなんだけど……」
ちなみにここでいう“同値”は論理学の用語で、以前に出てきた“同値関係”とは違います。
「そのうちの片方、『素数pが二つの二乗数の和で表せるなら、4で割った余りは3でない』は、高校生でも簡単に証明できるよ」
「ふむ……ちょっとやってみていいですか」
「うん、やってみて」
なんとなくだが、できそうに思えたので、わたしはホワイトボードに式を書きながら、考えを整理する。
以前に杏里から出された宿題と同様に、mod4で分類して考えればいい。二乗数はmod4だと0と1しかないので……。
0+0 = 0
0+1 = 1
1+1 = 2
この通り、二つの二乗数の和で表せるとしたら、それはmod4だと絶対に3にならない。
「……ってことですよね。思ったよりあっさり終わりました」
「うん、そういうことだね。まあ、同じ方法で②の半分も……とはいかないのだけど」
「合成数だと色んな素数が混ざりますからね。別のアプローチが必要になるのか……」
「②の方は①を使って証明する必要があるから、これは後回しにしてもいいと思うよ」
「…………」
「どうかしました? 蘭子先輩」
さっきからわたしと杏里の会話に入らず、珍しく無言でいた蘭子に、わたしは声をかける。蘭子はずっとわたし達やホワイトボードとは別のものを見ていたようだ。
「いや、これ……」
蘭子の視線の先に目をやると、もう一人、会話に参加していない人物が、真ん中の机に突っ伏していた。うぅ~ん……という唸り声を漏らしながら。
(寝てやがる……)
荒川先生はいつの間にかパイプ椅子に座って、そのままうつ伏せで寝入っていた。本当に数学の話を聞くだけで眠くなってしまったのか……半分くらい冗談だと思っていたよ。
わたし達全員から冷めた目で見られている荒川先生は、うなされながら寝言を呟き始めた。
「うぅ~……その話昨日も聞いたからぁ……おんなじ話するくらいなら会議なんかすんなぁ~……」
「……なんか、苦労しているようですね」
「しばらく寝かせてあげましょうか」
日々の仕事に忙殺されて心休まらない先生に、わたし達はささやかながら安息の時間を与えることにした。まあ、寝ている先生を放置するだけだが。
「さて、ここまで色々と平方剰余の例を見てきたけど、茉莉ちゃん、何か特徴がないかな」
「そうですねぇ、特徴っていえば……なんか、左右対称っぽい気がします」
「気がしますっていうか、その通りなんだけどな」蘭子が言う。「0だけを除外してみると、自然数nに対し、n未満の自然数の二乗はmod nで考えたとき、並べると左右対称になる。しかもnが素数の時は、同じ余りは必ず2回現れる」
「合成数でも結構、同じ余りが2回だけ現れる場合が多そうですけど……」
「n=10までだとそう見えるかもね。実際は数が大きくなるほど、同じ余りが3回以上出ることが増えていくよ。例えばmod12の時だと……」
1^2~11^2までの二乗数を12で割った余りは、
1, 4, 9, 4, 1, 0, 1, 4, 9, 4, 1
「ホントだ、1と4が4回も出ていますね」
「こういう事例を考えるのも無駄ではないけど、二平方和定理の証明には直接関わらないから、今回は割愛するね」
割愛……つまり本心では話したくて仕方がないのか。鉄の理性で抑え込んだな。数学が絡むと饒舌になりがちな蘭子も、最近は節制することが増えている。
「では、並びが左右対称になることと、素数の時に同じ数が二回だけ出ることを、合同式で示してごらん」
「えっと……0を除いて左右対称ってことは、1から数えてk番目と、n-1から数えてk番目が、二乗してnで割った余りが等しいってことですよね。1から数えてk番目は当然kだし、n-1から数えてk番目はn-kだから……」
(n-k)^2 = n^2-2kn+k^2≡k^2 (mod n)
「二乗した値がmod nで合同だから、nで割った余りは等しい、つまり並びは必ず左右対称です。次に、nが素数のとき、異なるaとbが両方とも、二乗してnで割った余りが等しいとすると……」
a^2≡c (mod n)
b^2≡c (mod n)
「こうなりますよね。合同式は左辺同士、右辺同士を引き算できるので……」
a^2-b^2≡0 (mod n)
「あっ、この左辺は因数分解できますね」
(a+b)(a-b)≡0 (mod n)
「おっと、これは前にも見たことがありますね。aとbはどちらもnより小さい自然数なので、a-bもnより小さいはず。しかもaとbは異なるから0でもない。でもnは素数なので、nより小さい自然数は全て、nとは互いに素です。すると、a+bの方がnで割り切れないといけないので、」
a+b≡0 (mod n)
「a+bは0にも2n以上にもならないので、」
a+b=n
「つまりnが素数の時は、二乗してnで割った余りが等しいとしたら、それは足してnになる組み合わせしかありえないので、同じ数は二度しか現れません」
「すごーい♡」
「茉莉もだいぶ合同式の扱いに慣れたようだな」
杏里が素直に拍手して褒めてくれるのはいつものことだけど、ようやく蘭子もわたしの力を認めるようになった。教科書で学んだ知識と、マス部で身につけた考え方が、大いに役立っている。勉強の成果を二人に認められるのは、胸がぽかぽかするほど嬉しい。
「nが素数のとき、左右対称でしかも同じ数が二度しか現れないということは、nを法とする平方剰余は、1からn-1までのうち、ちょうど半分あるということだ」
「2以外の素数は全て奇数だから、1からn-1までは偶数個あって、そのうちの半分が平方剰余になるんですね」
「ではここで少し寄り道をして、ある定理について考えてみよう」
めっちゃ唐突に進路変更してきた……考えがあってのことだろうけど、数学ってたまに目的が見えないまま別の筋の話を差し挟むから、困惑することも多いんだよなぁ。
「それはこちら、『ウィルソンの定理』だ」
ウィルソンの定理……
pが素数のとき、またその時に限り、
(p-1)!≡-1 (mod p)
※‘!’は階乗と呼ばれるもので、1からその値までの全ての自然数をかけたもの。つまり、(p-1)! = 1×2×3×…×(p-1)
「1からp-1までの自然数を全部かけたら、mod pで-1と合同になる、ですか……なんか、具体例で確かめたくても、気が遠くなりそうです」
「まあ、階乗って指数関数より速く増えるからね。私も具体例はやりたくないわ」
階乗の値が増える速さは文字通り桁違いなので、ウィルソンの定理を使って素数かどうか判定するのは、理論的には可能ですが現実的ではないそうです。
「合成数のときにこの式が成り立たないことは、簡単に示せるよ。(n-1)!はnの素因数のどれかで割り切れるけど、この式がもし成り立ったら、(n-1)!+1も同じ素因数で割り切れてしまい、矛盾するからね」
nが合成数なら、nより小さい素因数pがある
→(n-1)!にはpが含まれるのでpで割り切れる
もし(n-1)!≡-1 (mod n)だったら
→(n-1)!+1はnで割り切れる
→pはnの約数だから、(n-1)!+1はpでも割り切れる
→(n-1)!と(n-1)!+1が同じ素数で割り切れる
→おかしい
「なるほど、確かに。では、素数の時に成り立つことはどうやって示すんですか」
「よくあるのは、原始根を使った証明法だけど……今回は、ここからの展開をやりやすくするために、合同式の世界の“逆数”を考えてみよう」
「逆数?」
「茉莉、逆数ってそもそもどういう意味の言葉か知ってるか?」
「えーっと、確か……」
「分母と分子を逆にした分数のことですッ!」
「うわあ」
荒川先生が急に起きて叫んだものだから、思わず「うわあ」なんて口走っちゃったよ。数学が苦手な自分でも答えられる質問が来たから、反射的に答えてしまったみたいだ。訊かれたのわたしだけど……。
そして、生徒の立場で大変言いにくいことを、蘭子は容赦なく突きつける。
「先生、ハズレです」
「なんでっ!?」
「ホントにいいリアクションしますね、先生」
一体どれだけ数学とご無沙汰だったのか、荒川先生は小学校の算数レベルで間違えた。まあ、わたしもつい最近まで間違って覚えていたから、先生のことを笑えないのだが。
そんな先生に優しく教えるのは、やはり杏里の役目である。
「荒川先生、確かに分数の世界の逆数は、分母と分子が逆になっていますが、それはあくまで結果論で、逆数の本来の意味ではないんです」
「……そうなの?」
「逆数というのは、“かけたら1になる数”という意味なんですよ。例えば、2/3は、3/2をかけたら1になりますから、2/3の逆数は3/2ですし、4は、1/4をかけたら1になりますから、4の逆数は1/4ということです」
「逆数ってそういう意味なのね……」
「数学の世界で、“逆○○”という言葉は大抵、“続けて作用させると元に戻る”という意味を持っている。ある数をかけた後にその“逆数”をかけたら、1をかけることと同じだし、ある関数の出力を“逆関数”に入れると、元の入力値が出てくるし、同様のことは“逆元”や“逆変換”でも言えて……」
「蘭子ちゃん、先生もう寝てる」
「…………」
途中から蘭子が説明を始めたら、途端についていけなくなったのか、荒川先生は再び眠りについてしまった。机に突っ伏して寝息を立てている先生を見て、滔々とした話し口が止まる蘭子。
でもすぐに気を取り直した。
「よし、話を元に戻そう。合同式での逆数の話だったな」
蘭子の話が元に戻るのに、逆○○は必要なかったようである。いや、ある意味先生の寝つきの良さが、脱線した話を押し戻したと言えるか?
「合同式での逆数……つまり、かけたらmod nで1になる、ということですか」
「そう、まさにそれ。nが合成数のときは、逆数が存在しない……つまり何をかけても1と合同にならない場合もあるんだけど、nが素数のときは、0と合同でない全ての自然数に、逆数が存在するのよ。このことは、前に話したオイラーの定理から分かる」
オイラーの定理……
aとnが互いに素のとき、
a^φ(n)≡1 (mod n)
前回、何度も目にした定理だ。ここからどうやって逆数の存在を示すか、ちょっと考えてみた。
「えーと……nが素数のとき、0以外の全ての自然数がnと互いに素で、φ(n)はn-1になりますから……」
a^(n-1) = a×a^(n-2)≡1 (mod n)
「こう変形すれば、a^(n-2)が、aの逆数ということになりますね」
「実際に計算したらnより大きくなることがほとんどだから、nで割った余りに置き換える必要はあるけどな」
「それからnが素数のとき、逆数は必ず、一つの数に対して一つしか存在しないのよ」
杏里の言ったことが正しいかどうか、皆さんもぜひ確かめてみましょう。ほとんど同じ証明を、前回ですでに経験済みのはずです。
「つまり、互いに逆数になる組み合わせを、1以上n未満の自然数の中で作れる、ということでもあるの。例えば、7と11で確かめてみると……」
mod7の場合……(1,1) (2,4) (3,5) (6,6)
mod11の場合……(1,1) (2,6) (3,4) (5,9) (7,8) (10,10)
「ご覧のとおり、1とn-1は自分自身が逆数で、他は異なる数同士が逆数になっていて、しかもだぶりが全くないでしょ?」
「確かに……言われてみると、もしここにだぶりがあったら、一つの数に対して逆数が一つ、という性質と食い違ってしまいますよね」
「そういうことね。そして、互いに逆数になるってことは、かけ合わせたら1になるってことだから、1からn-1までの自然数を全てかけたら、どうなると思う?」
「あっ、そうか! 1とn-1以外は、かけたら1になる組み合わせを必ず作れるから、mod nだと、1とn-1の間の数は全部1になって……結局、n-1だけが残るわけですね!」
1×2×3×4×5×6
= 1×(2×4)×(3×5)×6
≡1×1×1×6 = 6 (mod7)
1×2×3×4×5×6×7×8×9×10
= 1×(2×6)×(3×4)×(5×9)×(7×8)×10
≡1×1×1×1×1×10 = 10 (mod11)
「ええ。n-1はmod nだと-1と合同だから、(n-1)!は-1と合同……これでウィルソンの定理は示せたことになるわね」
「まあ、少々定式化に難があるけど、雰囲気くらいは掴めたんじゃないかな」と、蘭子。「さて、寄り道はここまでだ。いよいよ本題の証明に取りかかるとしよう」
やっと本題か……寄り道に加えて荒川先生の乱入もあったから、思ったより時間がかかっているなぁ。
「ウィルソンの定理の証明では、mod pでかけたら1になる組み合わせを考えたが、今度は、かけたら-1になる組み合わせを考えてみよう。ただしpは素数だ」
「-1ですか……それって、存在自体はさっきのウィルソンの定理からすぐに言えますよね。pより小さい自然数が必ず、式の左辺に含まれていますし」
pが素数なら、(p-1)!≡-1 (mod p)なので、
a(<p)に対しては、(p-1)!÷aをかければ、mod pで-1になる。
「まあそうなんだけど……具体的に計算してみたら、何かと面白いことが分かると思うよ」
「ずいぶんと勿体つけますね。じゃあ、小さい素数から順番に確かめてみますね。mod2は候補が1しかありませんから、とりあえず省略するとして……」
mod3から順番に計算して、かけて-1になる組み合わせを探してみた結果、こうなった。
mod3……(1,2)
mod5……(1,4) (2,2) (3,3)
mod7……(1,6) (2,3) (4,5)
mod11……(1,10) (2,5) (3,7) (4,8) (6,9)
mod13……(1,12) (2,6) (3,4) (5,5) (7,11) (8,8) (9,10)
mod17……(1,16) (2,8) (3,11) (4,4) (5,10) (6,14) (7,12) (9,15) (13,13)
「……これ、何か面白いこと、あります?」
「ただ眺めるだけだと数字の羅列に見えるかもしれないけど……茉莉、ここに書いた組み合わせの中に、同じ数のペアを含んでいるのは、どの素数かな?」
「同じ数のペアというと……この三つですね」
mod5……(2,2) (3,3)
mod13……(5,5) (8,8)
mod17……(4,4) (13,13)
「どれもちょうど二つだけ含んでいます」と、そこまで言ってわたしは気づく。「あっ、そりゃそうか。素数を法とする時って、同じ平方剰余は2回しか現れないから……」
「平方剰余が-1になるパターンがあれば、それは二つだけだから、同じ数同士をかけて-1になるペアも、あるとすれば二つ、ってことね」
杏里が続きを言ってくれた。先に調べていた平方剰余の性質が、ここに来てしっかりと活かされている。バラバラに見えていたピースが、着実に繋がっていく感覚がした。
「では茉莉、同じ数同士のペアが含まれているのは、どんな素数を法とする時だろうか?」
「うーん……5と、13と、17……ん?」
少し考えたら気づきました。ものすごく重要なピースが嵌まったことに。
「4で割ったら1余る素数! 二平方和定理の……素数が二つの二乗数の和で表せるための条件と一緒じゃないですか!」
「そういうことだ。つまり、こういう関係が予想できる」
『素数pが二つの二乗数の和で表せる』
⇔ …①
『mod pで、二乗して-1と合同になる自然数が存在する(-1が平方剰余である)』
⇔ …②
『素数pを4で割った余りが1である(p=2は除く)』
「二平方和定理の内容が、こんな形で言い換えられるんですね……まあ、まだ証明できていませんけど」
「うん……実をいえば、肝心の①を証明するのがちょっと面倒なのよね」と、杏里。
「そっちを証明するのは後回しでいいわ。まずは②の方、mod pで-1が平方剰余となるための条件を確かめよう」
「どうするんですか?」
「さっきウィルソンの定理を証明する時に使った方法を、ここでも使ってみる。まず、-1が平方非剰余、つまり二乗して-1と合同になる自然数がない場合を考える。この時、かけ合わせて-1になる組み合わせはいくつできる?」
蘭子に訊かれて、わたしはここまでの流れを思い出しながら考えた。
mod pで二乗して-1になる数がないということは、同じ数のペアがないわけだから、1からp-1までの自然数を全て一回ずつ使って、だぶりなくペアを作れるということだ。つまり……。
「(p-1)/2個、ですね」
「そうだ。つまりこの場合、1からp-1までを全てかけ合わせると、-1を(p-1)/2個かけ合わせた値と合同になる、というわけだ」
「1からp-1までを全てかけ合わせるって……それは、mod pで必ず-1になると、ウィルソンの定理が示していますよね」
「その通り。だから-1を(p-1)/2個かけ合わせて、答えが-1にならないといけない。そのためには、pはどんな素数でないといけないかな?」
「-1は二つかけ合わせると1になるから、-1になるためには、奇数個かけないといけませんよね。つまりこういう形である必要があります」
(p-1)/2 = 2k+1(kは0以上の整数)
「これを変形すると……」
p = 4k+3
「つまり、-1が平方非剰余だったら、pを4で割った余りは3になる、ということですね」
「そういうことだ。ここから対偶をとれば、二平方和定理を証明するには充分だけど……ついでだから逆も示そう。-1が平方剰余となる場合はどうかな?」
「その場合は……1からp-1までの中で、二乗して-1と合同になる数が二つだけあって、それ以外の数を全て一回ずつ使って、かけたら-1になるペアを作れますから……同じ数のペアが2個、違う数のペアは(p-3)/2個作ることができます」
「うん、そうだね」
「あれっ!?」わたしは大変なことに気づいた。「このままだと、二乗しないと-1にならない数が二つ残るから、ウィルソンの定理が使えないのでは?」
「そこは心配無用だよ」杏里が言った。「覚えてない? 平方剰余の並びは必ず左右対称になるでしょ。つまり二乗して-1になる二つの数は、aとp-aで表されるんだよ」
「あ、そっか! ということは、その二つをかけた答えはmod pだと……」
a×(p-a) = ap-a^2≡0-(-1) = 1 (mod p)
「1になるんですね!」
「つまり、-1が平方剰余となる場合、1からp-1までを全てかけた値は、mod pで、-1を(p-3)/2個かけ合わせた値と合同になるわけだ。ウィルソンの定理から、この値は-1でないといけないので、(p-3)/2は奇数でないといけない。従って……」
(p-3)/2 = 2k-1 (kは0以上の整数)
変形すると、
p = 4k+1
「-1が平方剰余であれば、pを4で割った余りは1になると分かった。では最後に、-1が平方剰余であるときに、素数pが二つの二乗数の和で表せることを示そうじゃないか」
「いよいよ一つ目のゴールが見えてきましたね……!」
「最も効率的な証明は鳩の巣原理を使うけど、今回は具体的に構成する方法で示してみよう」
「鳩の巣原理?」
「それはまた今度教えるね」
と、杏里が言ったので、鳩の巣原理という非常に使い勝手のいい原理についての説明は、また今度。
「ここで役に立つのは、二つの二乗数の和に関する、こんな等式だ」
ブラーマグプタの恒等式……
(a^2+b^2)(c^2+d^2) = (ac-bd)^2+(ad+bc)^2
あるいは
(a^2+b^2)(c^2+d^2) = (ac+bd)^2+(ad-bc)^2
※恒等式とは、文字にどんな値を代入しても成立する等式のことです。
「これって、二つの二乗数の和で表される数同士をかけた値も、二つの二乗数の和で表せる、ってことですか」
「ああ。二平方和はかけ算で閉じている、と言うこともできるな」
この恒等式は、式を展開することで簡単に証明できます。また、複素数の絶対値を利用して示す方法もあります。
「では、この恒等式の存在を踏まえて、素数を二平方和で表す方法を辿ってみよう。まず、-1がmod pで平方剰余であるということは、p/2より小さい何かの自然数aを使って、この関係が成立するといえる」
a^2+1 = kp(a<p/2, kは自然数)
「このkが最初から1であれば、何の問題もない。pは二つの二乗数の和で表されているとすぐに言える。しかし実際には、このkが1であるとは限らない」
「つまりここからは、k≠1だとして、どうにか式を変形して、pが二つの二乗数の和で表される形に持ちこむわけですね」
「そういうことだな。問題は具体的にどう変形するかだが、まずは、より一般的な形で考えてみよう。ある二平方和がpの倍数だと分かっている、という状態から始める」
a^2+b^2 = kp(kは自然数)
「最初はb=1の状態からスタートして、色々変形してこの形にするんですね」
「そう。k=1になるまでこの変形を繰り返すわけだ。では次に、aおよびbをkで割った余りを考える。ただしこの余りは通常と違い、負の数も含めて、絶対値が最も小さいものを選ぶ」
「? どういうことですか?」
「例えばp=73のとき、二乗して-1と合同になる数は27と46だけど、このうち小さい方の27は……」
杏里はさっきまでわたしが使っていたノートパソコンを操作して、ブラウザからColabを立ち上げてPythonで何やら数式を組み立てた。
27^2+1^2 = 10×73
「こんな関係が成り立つの」
「どこから73が出てきました?」
「4で割って1余る素数で、パッと思いついただけ」
パッと思いつくものなのかな、73って。
「で、この次は27と1の両方を、さっきの式のkにあたる10で割って余りを出すんだけど……27の方は普通なら7にするところを、絶対値がより小さい-3の方を採用するってこと」
「何でそんなひと手間を……」
「余りをkの半分以下に抑えるためだよ。後で二乗するから、符号がどちらでも関係ないのよ」
「具体的なやり方が分かったところで、話を続けよう」分かった気はしないけど蘭子は先に進める。「aとbをkで割った商をそれぞれa'とb'、余りをcとdとおくと、このようになる」
a = a'k+c
b = b'k+d
ただし|c|,|d|≦k/2
「では茉莉、c^2+d^2は、どんな値になると思う?」
「うーん……cとdは、aとbをkで割った余りですから、mod kだとc^2+d^2は、a^2+b^2と合同になりますよね。そしてa^2+b^2=kpですから……」
c^2+d^2≡a^2+b^2 = kp≡0 (mod k)
「mod kで0……つまりkの倍数だと分かります」
「よろしい。次に、c^2+d^2が0となることはあるだろうか?」
続けざまに訊いてくるな、この人……だが、わざわざ確認するということは、これから大事になってくるのだろう。というわけで、考えてみた。
もしc^2+d^2が0ならば、cもdも0でないといけない。それぞれ、aおよびbをkで割った余りだから、それが0ということは、aもbもkの倍数となる。するとどうなる……?
「……0にはなりません」
「その心は?」
「もし0だったら、cとdは両方とも0で、するとaもbもkの倍数なので、a^2+b^2はk^2の倍数となります。でもそうすると……」
a^2+b^2 = kp
「最初のこの式から、kpもk^2の倍数となるので、素数であるはずのpが、1でない自然数kで割り切れることになります。するとk=pとなりますが、最初の設定はaがp/2以下でb=1なので、a^2+b^2はp^2より確実に小さくなります」
「その場合、kはpより小さくなるから、矛盾するね。フライングするけど、この後もkの値は小さくなるだけだから、常にkはpより小さく、どっちにしても矛盾するよ」
「まあ具体的なことはまだ分かりませんが、kの値を1に近づけるのが目標ですしね……」
「それにしても、茉莉もずいぶん背理法を使いこなせるようになったな」
「それ、喜んでいいのかどうか、複雑ですね……」
「何で?」
純粋に数学の手法としか思っていない蘭子には疑問だろうが、わたしにとって背理法はひねくれ者の常套手段なので、使いこなせるようになるということは、自分がだんだんひねくれ者になっていると言われている気分になるのだ。
「さて、ここまで来ればあと一息だ。さっき茉莉はc^2+d^2がkの倍数だと突き止めたわけだが……このc^2+d^2をkで割った商、とりあえずqとおくよ」
「つまりこういうことですか」
c^2+d^2 = kq
「そうそう。ではここで質問。このqは、kと比べて大きいか、それとも小さいか?」
「えっ……?」
そこで大小を比較する問いかけが来ると思わなかったから、一瞬思考が止まったけど、すぐにわたしの脳はぐるぐると動き出す。数の大小を比べるのは不等式で、ここまでの話に出てきた不等式は一つしかない。そして、その大小が意味するものは……まだ使っていないあの等式が使われるのは……。
「あーっ! そっか!」
ようやく全ての要素が繋がった。その瞬間にわたしは声を大にして叫んだ。
「おっ、分かったみたいだな」
「はい、分かりました! このqが、次のkになるんですね! この作業を繰り返すことで、最終的にkを1にすることができます!」
「おー、すごーい♡」パチパチと拍手で褒める杏里。
「では、どうやってその結論を導いたか、説明してくれるかな」
「はい。まずqは、kよりも小さい自然数です。というのも、cとdはどちらも、絶対値がk/2以下なので……」
kq = c^2+d^2≦(k/2)^2+(k/2)^2 = (k^2)/2
よって、q≦k/2
「kは2以上の自然数なので、その半分以下であるqは確実にkより小さくなります。しかもc^2+d^2は0じゃないので、それをkで割った商であるqも0ではありません。そして、二つの二乗数の和と関係する、kより小さい自然数……その存在が重要な鍵になります。試しに、pとqをかけたらどうなるか見てみます。どちらも、二平方和をkで割った値なので……」
pq = {(a^2+b^2)/k}{(c^2+d^2)/k}
= (a^2+b^2)(c^2+d^2)/k^2
「こんなふうに、二平方和のかけ算がでてきます。つまりここで、二平方和のかけ算も二平方和で表せる、ブラーマぶぶっ……ブラーマグプタの恒等式が使えます」
(噛んだ……)
(噛んじゃった……)
先輩たちは表情こそ変えていないが、たぶんこんなことを思ったに違いない。しょうがないじゃん、言いにくいんだもの。
若干恥ずかしさでどこかに顔をうずめたくなったけど、何とかこらえてマーカーペンを動かす。
「えー、するとpqはこうなります」
pq = {(ac-bd)^2+(ad+bc)^2}/k^2
= {(ac-bd)/k}^2+{(ad+bc)/k}^2
「これは、二平方和で表せる、kpより小さいpの倍数が作れていることを示しています。だからこの作業を繰り返すことで、kの値をどんどん小さくできて、最後にkが1になったところで終わります。どうですか?」
かなり自信のある解答なので、いい反応が返ってくると期待して、わたしは先輩たちに尋ねた。
しかし……蘭子は真顔で、杏里は苦笑いだった。
「…………不足」
「茉莉ちゃん、二乗している中身の分数が、整数になることの確認を忘れてる」
「そうでした!」
とんでもない早とちりだった。わたし達はあくまで整数の二乗の和を求めているのだから、分数が出てきたらそれが整数になることを確かめないと。
とはいえ、要は分子のac-bdとad+bcがどちらもkの倍数であればいいので、mod kで0になることを確かめればいい。
a≡c, b≡d (mod k)なので、
ac-bd≡a^2-b^2≡……? (mod k)
ad+bc≡ab+ba = 2ab≡……? (mod k)
「……あれ? 0にならない……?」
「やっぱりつまずいたな。ブラーマグプタの恒等式、もう一つあったでしょ。それを使ってみな」
「あー、符号が逆になっている別解がありましたね。えっと、もう一つの恒等式を使うと……」
pq = {(ac+bd)^2+(ad-bc)^2}/k^2
= {(ac+bd)/k}^2+{(ad-bc)/k}^2
ここで、
ac+bd≡a^2+b^2 = kp≡0 (mod k)
ad-bc≡ab-ba = 0 (mod k)
よって、(ac+bd)/kと(ad-bc)/kは整数。
「あー、よかった。ちゃんと整数になりました」
「考え方は間違ってなかったけど、最後で詰めを誤ったな。数学はどんな些細な誤りも、侮ってはいけないものなんだよ」
「はい……」
それっぽい答えに飛びついて、必要な確認を怠ったために、致命的な間違いに気づけなかった。以前より実力はついてきたと思っていたが、やはりまだまだだと痛感させられる。
「……しかし、やはり文字だけの証明だと味気ないな。せっかくだから、具体的な数で、茉莉が考えた構成の流れを追ってみようか」
「じゃあ、73でやってみますか? 途中までで終わっていますし」
「そうだな、続きを見てみよう」
「えっと、mod 73で平方剰余が-1になるのは27と46で、そのうち小さい方の27を使うと……」
27^2+1^2 = 10×73
「こういう式が成り立ちます。27と1について、10で割った余りを出すと……」
27 = 3×10 + (-3)
1 = 0×10 + 1
「負の数も含めて、絶対値が小さい方を選べばこうなります。すると、a,b,c,d,kはそれぞれこうなるので……」
a=27, b=1, c=-3, d=1, k=10
「c^2+d^2は、(-3)^2+1^2=10なので、確かにk=10で割り切れますね。実際に10で割った値はq=1となるので……」
pq = 73×1
= {(27^2+1^2)/10}×{((-3)^2+1^2)/10}
= (27^2+1^2)((-3)^2+1^2)/10^2
「ここで、例の恒等式を使うために、先にac+bdとad-bcを計算しておきます」
「ブラーマグプタの恒等式な?」
「…………」
蘭子が何やらニヤついた顔で言い添えてきたみたいだが、わたしは聞かなかったことにした。
ac+bd = 27×(-3)+1×1 = -80
ad-bc = 27×1-1×(-3) = 30
「すると最初の式は……」
pq = {(ac+bd)^2+(ad-bc)^2}/k^2
= ((-80)^2+30^2)/10^2
= {(-80)/10}^2+{30/10}^2
= (-8)^2+3^2
「完成です。実際にこれを計算してみると……」
(-8)^2+3^2 = 64+9 = 73
「確かに73になりますね」
「つまり73は8^2+3^2で表せるということだな。今回は一度でq=1となったから一回で終わったが、これはただの偶然だ。実際には、二回も三回も同じ操作を繰り返すこともある」
「でも着実に数を減らせるから、必ず有限回でこの操作は終わるけどね」と、杏里。「同じ操作を、特定の値になるまで繰り返すから、大きな素数で確かめるならプログラミングを使うといいよ」
「もしかして、さっき杏里先輩が見せたのって……」
先ほど杏里がノートパソコンを操作して見せた、Colabによるプログラムの計算結果……どう見てもあの一瞬でゼロからコードを書いたとは思えない。
「うん。わたしが去年、研究のために書いたコードだよ。後半をコメントアウトして、-1が平方剰余になる数を求めたところで表示するようにしたの」
「やっぱりか……」
「せっかくだから茉莉も、素数を二平方和で表すプログラムを自力で作ってみるといい。Pythonなら比較的簡単だし、プログラミングの初歩的な訓練になる」
「杏里先輩の書いたやつには触れさせてくれないんですか……」
「完成品を動かしても最後の結果しか出てこないからな、それでは身にならない」
厳しいが言いたいことは分かる。わたしもすでに簡単なプログラムを作成した経験があるけど、完成させるまでは相当苦労したのに、完成品を何度も動かすうちに、最初の達成感は薄れてしまっていた。自力で作るから味わえる快感もあるのだと、今だから言える。
とはいえ、まだソースコードなんて手探り状態で書くのが精一杯だから、発表会の準備が残っている現状で、そんなものを書いている余裕はない。気が向いた時に作るとするかぁ。
「こういうプログラムって、問題を深く理解しているからこそ、効率的なコードを書けるのよね。自力で証明に辿り着けた茉莉ちゃんなら、時間はかかってもちゃんと作れるんじゃないかなぁ」
「辿り着けたといっても、最後でやらかしましたけどね」
「とはいえ、恐らくバラバラに見えていたであろう、ここまでの様々な要素を、上手いこと組み合わせてアイデアを練り上げたんだ。発想は上出来だ」
「まあ、どこかで使うと思って、ちゃんと記憶していたのがよかったんでしょうね、ブラーマぶぶっ……ブラーマグプタの恒等式」
「ぶふっ」
どこかから、わたしの噛んだ部分をトレースしたような失笑を漏らした人がいた。誰だこの野郎、と思ったらその人はテーブルに突っ伏していた。
わたしはその人に、優しく声をかける。
「荒川先生、起きてますね?」
「……ぐー、すぴー」
「寝息が棒読みになってますよ。寝たふり下手くそですか」
それから、人の言い間違いを笑いやがった顧問の先生がたぬき寝入りをやめるまで、十分ほどかかった。
* * *
「……とまあ、少々複雑にはなったが、これがフェルマーの二平方和定理の、初等的な証明だ」
「これで初等的なんですね……しかも結局①しか証明できてない……」
「②は平方剰余の性質とブラーマグプタの恒等式を使えば、①から導けるから、挑戦してごらん」
杏里に言われたので、わたしは挑戦してみることにした。宿題だと明言されたわけじゃないけど、今度こそ自力で完全な証明を組み立てたい、という思いが改めて強くなっていた。
さて、数学が苦手なせいで置いてけぼりを食らっていた顧問の先生は、ようやく長い話が終わって口を利くようになった。
「ようやっと終わったみたいね。話に夢中になるのはいいけど、発表会の準備も忘れないでよ。苦戦しているんでしょう?」
「まあそこは、蘭子先輩のご指摘を踏まえて追々と……」
「そうそう、まだ他にも改善できる箇所があるから、原稿に付箋貼っておくね」
「うぐっ……痛み入ります」
早速ノートパソコンを操作し始める蘭子のひと言にぐさりとやられて、胸を押さえるわたし。経験者からの貴重なアドバイスだから、どんなに数が多くて厳しくても無下にはできない。ありがたや。
そんなわたし達をよそに、荒川先生は杏里に話しかけてきた。
「ねえ、軽部さん。本当にあなたたちは発表会に出なくていいの? 鈴原さんが入るまでは、研究を進めていたんじゃないの?」
「まあ、ある程度は……」
「気は進まないかもしれないけど、部としての成果は多い方がいいわよ。学校の内外にマス部の存在を示す機会にもなるし、同好の士も増えるんじゃない?」
「うーん……」
顧問としての立場で意見しているのだと理解はしていても、杏里は首を縦に振らなかった。
「仲間が増えるのは確かに魅力的ですが、わたしは今のままの方が心地よくて好きですし……どうせ増えるなら、一気に4人くらい増えてくれないと」
「え? なんで4人? この部室、そんなに入らないと思うけど」
何も知らない荒川先生は首をかしげた。杏里が今のマス部に心地よさを感じているのは、部員の人数が3だから、というのが大きい。
(素朴で素敵で、それでいて、たとえ世界が広がってもバラバラに壊れることもない……だから、安心できるんだよね)
杏里が慈しむような視線を向ける先に、わたしも蘭子もいて、この三人だから作り出せるマス部が、杏里にとってのよき居場所となっている。きっとそのことは、ガウス整数に出会わなければ、気づくこともなかっただろう。
3、それは、ガウス整数で分解できない、最も小さい素数。しばらくこの数のままでいてほしいと、杏里は秘かに願った。
今後も色んなキャラを出していくつもりですが、マス部のメンバーは現状維持のまま、ラストまでやっていく予定です。ラストなんていつ来るか分かりませんが……。
ちなみに前書きにあった二平方和定理の一文証明は、初見ですぐに理解するのは厳しいかもしれません。図形を使って分かりやすく説明しているブログ記事があるので、ぜひご覧ください。
https://note.com/math_wakara/n/n9616eb3e8a6d




