「任意の正整数は素因数分解でき,その分解は一意である」― これは算術の基本定理と呼ばれ,整数論の土台です.しかし,この「当然」に見える事実は,実は深い構造的理由があって成り立っています.別の数の世界では一意性が崩壊するからです.
1 素数の定義
2 以上の整数 p が素数であるとは,p の正の約数が 1 と p のみであることです.素数でない 2 以上の整数を合成数と呼びます.
素数が有限個 p1,p2,…,pk しかないと仮定します.N=p1p2⋯pk+1 を考えると,N はどの pi でも割り切れません(割ると余り 1).しかし N≥2 なので素因数をもちます.これは仮定に矛盾します. □
2 算術の基本定理 ― 存在の証明
任意の 2 以上の整数 n は,素数の積として n=p1e1p2e2⋯pkek(p1<p2<⋯<pk,ei≥1)
と表され,この表示は(順序を除いて)一意です.
存在と一意性を分けて証明します.
n に関する強帰納法を用います.n=2 なら素数なので成り立ちます.n>2 とします.n が素数ならそれ自身が素因数分解です.n が合成数なら n=ab(1<a,b<n)と書け,帰納法の仮定により a,b はそれぞれ素因数分解をもつので,それらの積が n の素因数分解です. □
3 一意性の証明 ― ここが本質
一意性の証明には,次の補題が鍵です.
p が素数で p∣ab ならば,p∣a または p∣b.
p∤a とします.p は素数なので gcd(p,a)=1.ベズーの等式より px+ay=1 となる整数 x,y が存在します.両辺に b をかけると pbx+aby=b.p∣ab より p∣aby,また p∣pbx なので p∣b. □
n=p1p2⋯ps=q1q2⋯qt とします.p1∣q1q2⋯qt です.ユークリッドの補題を繰り返し適用すると,ある j で p1∣qj.qj は素数なので p1=qj.両辺を p1 で割り,帰納法を適用すれば一意性が従います. □
4 一意性が崩壊する世界 ―Z[−5]の反例
一意性は「当然」ではありません.次の例を見てください.
Z[−5]={a+b−5∣a,b∈Z} を考えます.この世界で 6 を「素因数分解」すると,
となり,2通りの分解が存在します.
5 エラトステネスの篩
素数を具体的に列挙する古典的アルゴリズムです.
2 から N までの素数を O(NloglogN) 時間で列挙できます.
6 線形篩 ― 各合成数を1回だけ消す
7 まとめ
素数は整数の「原子」であり,無限に存在します
算術の基本定理は,素因数分解の存在と一意性を主張します
一意性はユークリッドの補題(したがってベズーの等式)に依拠しています
Z[−5] ではユークリッドの補題が成り立たず,一意性が崩壊します
エラトステネスの篩は O(NloglogN),線形篩は O(N) で素数を列挙します
次の記事では,素数の世界における「対称性」― フェルマーの小定理に迫ります.