整数には隠された構造がある——素数が「原子」であり、時計は独自の数の世界だ。
これまでのカリキュラムで、数が何をするかをたっぷり学んできた——足し算、スケーリング、傾き、積分。整数論はもっと静かな問いを立てる:整数は何でできているのか?実は整数には隠された構造がある。ごく少数の数——素数——が分割できない原子であり、他のすべての整数はそれらをちょうど一通りの方法で組み合わせてできている。割り算と余りだけで、二つの巨大な数の最大公約数を数行で求められるし、時計の文字盤のように循環する全く新しい算術を作ることもできる。これらのアイデアは魅力的な遊びに見えるが、実はあなたのオンライン生活を守る仕組みでもある——ブラウザの鍵マークの裏にあるセキュリティは、素数と時計算術に頼っている。さあ、正直なはじめのツアーに出発しよう。
まず二つの整数の間で最も基本的な関係から始めよう:一方が他方に割り切れるかどうかだ。b ∣ a と書いて「b が a を割り切る」と読む。これは整数 k があって a = b · k となることを意味する。余りはゼロ。3 ∣ 12 は 12 = 3 · 4 だから成り立つが、3 ∤ 13 だ。というのも 13 = 3 · 4 + 1 となり、頑固な 1 が残るからだ。
正直な絵は点の長方形だ。n 個の点を d 列に並べる。列がきれいに揃えば長方形は完全——それがまさに d ∣ n の意味だ。最後の行がはみ出せば、その隙間が 余り r だ。整数の割り算は必ず、次のようにきれいに書ける:
a = q · b + r, ただし 0 ≤ r < b
これが除法の原理(割り算の定理)であり、余り r がこのレッスン全体の主役だ。整除性とは単に r = 0 の場合にすぎない。
割ってみよう:30 = 4 · 7 + 2。商は 4、余りは 2。r = 2 ≠ 0 なので 7 ∤ 30。30 を割り切る数——約数——をすべて列挙すると 1, 2, 3, 5, 6, 10, 15, 30 となる。
1列より広い長方形に並べることができない数がある。素数とは、1 より大きく、約数が 1 と自分自身だけの整数のことだ:2, 3, 5, 7, 11, 13, … これらが原子だ。約数をもっと持つ数——12, 30, 100——は合成数と呼ばれ、より小さい因数に分解できる。
素数を手で探すなら、古代ギリシャのエラトステネスの篩が最強だ。数を格子に書き、2 を丸で囲み(素数)、それ以降の 2 の倍数をすべて消す。次に残った 3 を丸で囲み、その倍数を消す。これを繰り返す。生き残ったものが素数だ。消す操作は整除性をひたすら繰り返しているだけだ。
ここで深い事実が現れる。1 より大きい整数をとり、それ以上分割できなくなるまで因数に分け続けよう——できあがる因数ツリーの葉はすべて素数だ。別の方法で分解しても、同じ原子が(順序を除いて)現れる。これが算術の基本定理(素因数分解の一意性):1 より大きいすべての整数は、素数の積としてただ一通りに表せる。
12 = 2² · 3, 60 = 2² · 3 · 5, 360 = 2³ · 3² · 5
この一意性こそ、素数を「原子」と呼ぶにふさわしい理由だ。分数を約分して既約分数にする方法がただ一つに定まるのも、このレッスンの後の結果がすべて整合するのも、この定理が土台にあるからだ。
1 を最小の素数と呼びたくなるが、それは間違いだ。素数は約数がちょうど二つあるが、1 の約数は自分自身だけの一つ。だから 1 は「単数元」という独自のクラスに属する。もし 1 を素数とすると一意性が崩れる:12 = 2²·3 = 2²·3·1 = 2²·3·1·1 = … 分解はただ一通りでなければならないから、1 は意図的に除外されている。
二つの数は普通いくつかの因数を共有する。その中で最大のものが最大公約数(gcd)で、gcd(a, b) と書く。両方を素因数分解して比べることもできるが、大きな数では時間がかかり、素因数分解自体が本当に難しい。2000 年以上前から知られている、驚くほど速い近道がある:ユークリッドの互除法だ。
アイデアは一つの観察に基づく。a と b の両方を割り切る数は、必ず余り r = a − q·b も割り切る。だから (a, b) の公約数は (b, r) の公約数と完全に同じ——同じ gcd を持つより小さいペアだ。大きい方を余りで置き換えて繰り返す。数はどんどん小さくなり、余りが 0 になったとき、最後の 0 でない余り が gcd だ。
48 = 2·18 + 12 → 18 = 1·12 + 6 → 12 = 2·6 + 0.
最後の 0 でない余りは 6 なので gcd(48, 18) = 6。確認:48 = 6·8、18 = 6·3 で、8 と 3 は共通の因数を持たない——6 が本当に最大の公約数だ。
ここで整数論がまったく新しい世界への扉を開く。時計の文字盤には 0 から 11 の時刻しかない。9 時に 5 時間を足しても 14 にはならず、ぐるっと回って 2 になる。時計は 12 で割った余りだけを静かに残している。これが合同式のすべてのアイデアだ。
法 m を固定する。m で割った余りが等しいとき、二つの数はmod m で合同という——a ≡ b (mod m) と書く。同値な条件として m ∣ (a − b) でもある。どんな整数も 0, 1, 2, …, m−1 のどれかにちょうど一つ合同になる:これを剰余(レジデュー)という。数直線全体が文字盤の上に折りたたまれるのだ。
17 ≡ 5 (mod 12), 29 ≡ 5 (mod 12), −7 ≡ 5 (mod 12)
三つとも同じ場所に落ち着く——同じ「時刻」だ。合同式は等しさのあいまいな近似ではなく、余りの厳密な等しさだ。
合同式が強力なのは、足し算と掛け算について通常の算術と同じように振る舞うからだ。a ≡ a′ かつ b ≡ b′ (mod m) ならば、
a + b ≡ a′ + b′ かつ a · b ≡ a′ · b′ (mod m).
このシンプルな規則は本当に役立つ。大きな累乗の一の位は? 一の位は mod 10 の値にすぎない。7 の累乗は 7, 9, 3, 1 と周期 4 で循環するから、7100 の一の位は 74 の一の位、つまり 1。曜日は? mod 7 で計算する。9 で割り切れる? 数は各桁の和に mod 9 で合同——これが「9 を捨てる」検算で計算ミスをつかまえられる理由だ。
曜日は周期 7 で繰り返すから mod 7 に減らす:60 = 8·7 + 4、つまり 60 ≡ 4 (mod 7)。水曜から 4 日進むと → 木曜、金曜、土曜、日曜。60 日をすべて数える必要はなかった。
足し算と掛け算は安全だが、共通因数を約分することはできない。mod 6 では 2·4 = 8 ≡ 2 かつ 2·1 = 2 なので 2·4 ≡ 2·1 (mod 6)。しかし「2 で割る」と 4 ≡ 1 になってしまい、これは偽だ(4 と 1 は mod 6 で異なる剰余)。約分が許されるのは、約分する因数と法が互いに素のときだけだ。この一つの落とし穴を覚えておけば、時計算術は実に信頼できる。
| アイデア | 意味 | 正直なテスト |
|---|---|---|
| 整除性 | b ∣ a とは a = b·k(余りなし) | a = q·b + r と書いて r = 0 を確認 |
| 素数 & 基本定理 | n > 1 はすべて素数の積にただ一通りに書ける | 因数ツリー;12 = 2²·3(1 は素数でない) |
| gcd | a, b の最大公約数 | ユークリッド:最後の 0 でない余り、gcd(48,18)=6 |
| 合同式 | a ≡ b (mod m):余りが等しい、m ∣ (a−b) | 剰余、17 ≡ 5 (mod 12) |
| mod 算術 | + と × は合同を保つ(÷ は不可) | 一の位、曜日、9 を捨てる検算 |
6 問で理解を定着させよう。正しいと思う答えをタップしてね。
このレッスンは標準的な高校カリキュラムを超えた発展内容——整数論への道案内で、数学オリンピックや現代の暗号技術(RSA 暗号は素数と合同算術に直接依存している)への入り口だ。種は小学校で因数・倍数・素数を学んだときに蒔かれている(因数、倍数と素数)。四つのアイデアが柱だ:除法の原理 a = q·b + r による整除性;一意的な素因数分解(算術の基本定理、1 は素数でないという意図的な約束);最大公約数のためのユークリッドの互除法;そして時計算術としての合同式。強調すべき中心的な注意点は、合同式では足し算と掛け算は自由にできるが割り算はできないということだ。ここから道は抽象代数と整数論へと分かれていく——広大な野原へと静かに開かれた扉だ。