§A4.2素数と素因数分解

最終更新

素数とは、11と自分自身以外に正の約数を持たない、22以上の整数のことです。2,3,5,7,11,13,…2, 3, 5, 7, 11, 13, \dotsと続きます。11は素数に含めません(理由は後述)。素数でない22以上の整数(4,6,8,9,…4, 6, 8, 9, \dots)は合成数と呼ばれ、必ず自分より小さい素数の積に分解できます。

1 エラトステネスのふるい

NN以下の素数を一気に列挙する古典的な方法です。

  1. 22からNNまでの整数を並べる。
  2. まだ消していない最小の数ppを素数として確定し、ppの倍数(pp自身を除く)をすべて消す。
  3. 次に残っている最小の数へ進んで 2 を繰り返す。p2>Np^2 > Nになったら終了。

消し残った数が素数です。N\sqrt{N}より大きい数についてはふるい落とす必要がないので、p2>Np^2 > Nで打ち切ってよい、というのがこの方法の効率の要です。

2 素因数分解の一意性——算術の基本定理

22以上のどの整数も、素数の積として、掛ける順序を除きただ一通りに書けます。これを算術の基本定理と呼びます。60=22×3×560 = 2^2 \times 3 \times 5という書き方が他に存在しないことを、私たちは当たり前のように使っていますが、これはまったく自明ではありません。

一意性の証明の核心にあるのはユークリッドの補題です——「素数ppが積ababを割り切るなら、ppはaaかbbの少なくとも一方を割り切る」という主張で、一見当たり前に見えますが、これ自体が証明を要する事実です。この補題は、gcd⁡(p,a)\gcd(p, a)が互除法によってpx+ay=gcd⁡(p,a)px + ay = \gcd(p, a)の形(ベズーの等式)に書けることから導かれます——p∤ap \nmid aならgcd⁡(p,a)=1\gcd(p, a) = 1なのでpx+ay=1px + ay = 1と書け、両辺にbbを掛けたpbx+aby=bpbx + aby = bの左辺は(p∣abp \mid abを使うと)どちらの項もppで割り切れるため、右辺のbbもppで割り切れる、という流れです。互除法という計算の道具が、素因数分解の一意性という根本的な事実を裏で支えているわけです。

3 素数は無限に存在する

素数がどこかで尽きてしまわないことも、証明が必要な事実です。ユークリッドによる証明を見てみましょう。

素数は有限個ではありません。 背理法で示します。もし素数が有限個しかなく、それをp1,p2,…,pnp_1, p_2, \dots, p_nと全部並べられたとします。このとき

N=p1p2⋯pn+1N = p_1 p_2 \cdots p_n + 1

を考えます。NNはどのpip_iで割っても11余るので、p1,…,pnp_1, \dots, p_nのどれによっても割り切れません。ところがNNは22以上の整数なので、素因数を少なくとも1つ持ちます(算術の基本定理より)。その素因数はp1,…,pnp_1, \dots, p_nのどれとも異なる、新しい素数です。これは「素数はp1,…,pnp_1, \dots, p_nで全部」という仮定に矛盾します。

ここで「NN自身が素数である」と誤解しないよう注意してください。証明が言っているのは「NNの素因数のどれかがp1,…,pnp_1, \dots, p_nにない新顔だ」ということだけで、NN自身が素数かどうかは分かりません。実際2×3×5×7×11×13+1=30031=59×5092 \times 3 \times 5 \times 7 \times 11 \times 13 + 1 = 30031 = 59 \times 509は合成数です。

閑話休題:どこまでも続く「素数のない砂漠」と、埋まらない双子の隙間 素数はどれだけ間隔を開けても、その先にはまた次の素数が現れます。しかし局所的には、素数が全く現れない区間をいくらでも長く作れます。N!=1×2×⋯×NN! = 1 \times 2 \times \cdots \times Nとして、N!+2, N!+3, …, N!+NN! + 2,\ N! + 3,\ \dots,\ N! + NというN−1N - 1個の連続した整数を考えると、N!+kN! + k(2≤k≤N2 \le k \le N)はkkで割り切れます(N!N!もkkもkkの倍数だから)。つまりこれらは全部合成数——好きなだけ長い「素数砂漠」がいつでも作れてしまうのです。

その一方で、正反対の問いは驚くほど手強いままです。(3,5),(11,13),(41,43)(3, 5), (11, 13), (41, 43)のように差が22の素数の組を双子素数と呼びますが、「双子素数は無限に存在するか」は、百年以上未解決の問題です。潮目が変わったのは2013年、当時無名に近かった張益唐(チャン・イタン)が「差が7000万以下の素数の組が無限に存在する」ことを証明し、数学界を驚かせます。この結果を受けて、ポリマス・プロジェクトという数学者たちの共同オンライン作業によって上限は急速に縮められ、「差が246以下の素数の組が無限に存在する」という結果も得られました(差22ちょうどの双子素数予想そのものは、依然として未解決です)。

例題

条件と何を求めるかを確認してから、式と答えの対応を見比べてください。

次の問いに答えよ。d(n) は n の正の約数の個数、σ(n)\sigma(n) は n の正の約数の総和を表す。

解法の型n ==p1e1p1^e1 … pkekpk^ek に対し d(n) == Π(ei+1)、σ(n)\sigma(n)== Π (p^(e+1)−1)/(p−1)(素因数分解の一意性から従う)

  1. 441 の正の約数の個数 d(441) を求めよ。

    n=32⋅72=441,d(n)=?n = 3^{2} \cdot 7^{2} = 441, \qquad d(n) = ?
  2. 7605 の正の約数の個数 d(7605) を求めよ。

    n=32⋅5⋅132=7605,d(n)=?n = 3^{2} \cdot 5 \cdot 13^{2} = 7605, \qquad d(n) = ?
  3. 275 の正の約数の総和 σ(275)\sigma(275) を求めよ。

    n=52⋅11=275,σ(n)=?n = 5^{2} \cdot 11 = 275, \qquad \sigma(n) = ?
  4. 1911 の正の約数の総和 σ(1911)\sigma(1911) を求めよ。

    n=3⋅72⋅13=1911,σ(n)=?n = 3 \cdot 7^{2} \cdot 13 = 1911, \qquad \sigma(n) = ?
  5. 3773 の正の約数の総和 σ(3773)\sigma(3773) を求めよ。

    n=73⋅11=3773,σ(n)=?n = 7^{3} \cdot 11 = 3773, \qquad \sigma(n) = ?
  6. 1715 の正の約数の総和 σ(1715)\sigma(1715) を求めよ。

    n=5⋅73=1715,σ(n)=?n = 5 \cdot 7^{3} = 1715, \qquad \sigma(n) = ?
  7. 40 が完全数(自分自身を除く正の約数の総和が自分自身に等しい数)であるかどうか判定せよ。

    n=40は完全数か?n = 40 \quad \text{は完全数か?}
  8. 585 の正の約数の総和 σ(585)\sigma(585) を求めよ。

    n=32⋅5⋅13=585,σ(n)=?n = 3^{2} \cdot 5 \cdot 13 = 585, \qquad \sigma(n) = ?
  9. 28 が完全数(自分自身を除く正の約数の総和が自分自身に等しい数)であるかどうか判定せよ。

    n=28は完全数か?n = 28 \quad \text{は完全数か?}
  10. 4394 の正の約数の個数 d(4394) を求めよ。

    n=2⋅133=4394,d(n)=?n = 2 \cdot 13^{3} = 4394, \qquad d(n) = ?

演習

問題を解いてから「解答・解説」を開けます。

次の問いに答えよ。d(n) は n の正の約数の個数、σ(n)\sigma(n) は n の正の約数の総和を表す。

演習を読み込み中…

前提記事