素数に最後の 1 個はない〜ユークリッドの論法とエラトステネスのふるい
以下の素数は 25 個、 以下では 168 個、 以下では 1229 個。割合はどんどん薄くなります。
それでも尽きることはありません。素数が有限個だとすると矛盾が出る、という形ではなく、有限個のリストからいつでも新しい素数を作り出せます[1]。
ユークリッドの論法
素数を好きなだけ並べます。 としましょう。全部を掛けた数に を足します。
をリストのどの素数で割っても、余りは です。積の部分は割り切れ、足した だけが残るためです。
は 以上なので、必ず素因数を持ちます。その素因数はリストのどれとも違う。つまりリストは、いつでも完全ではありません[2]。

も もリストにありません。この操作は何度でもくり返せるので、素数が尽きることはない。
背理法ではない
「素数が有限個だと仮定して矛盾を導く」と説明されることが多いものの、もとの論法は仮定を置いていません[1]。
与えられた有限個のリストから、そこに入っていない素数を作る。仮定も矛盾も使わない、直接の作り方です。
ユークリッド自身の書き方も「どんな個数の素数を並べても、それより多くの素数がある」という形でした[2]。
例:小さいリストで試す
と から始めます。積に を足すと で、これは素数。リストに加えます。
なら 、 なら 。どちらも素数で、そのまま新しい素数になりました。
では 。これも素数です。ここまで 4 回続けて、積に を足した数が素数になっています。
例:積に 1 を足した数が素数とは限らない
まで伸ばすと様子が変わります。 で、 を足すと 。
です。素数ではありません。それでも と はリストの外なので、結論は変わらない。
論法が言っているのは「 が素数だ」ではなく「 の素因数がリストの外にある」ということ。ここをとりちがえると、証明が崩れて見えます。
は素数とは限りません。必要なのはリストの外に素因数があるという一点だけです。
リストのどの素数で割っても余りが なので、 の素因数はどれもリストに属さない。
エラトステネスのふるい
素数を実際に数えるには、合成数を消していく方法が使えます[4]。
以上を並べ、 の倍数を消す。次に残った最小の数 の倍数を消す。これをくり返します。
以下では、、、、 の倍数を落とすだけで終わります。残った 25 個が素数です。
平方根まででよい理由
合成数 は と書けます。 と の両方が より大きいと、積が を超えてしまう。
だから小さいほうは必ず 以下。 以下の素数で落とせば、合成数はすべて消えます[4]。
なら なので、 以下の素数 で足りる。 なら 以下の 11 個で足ります。
2 の倍数を落とす
残った最小の数の倍数を落とす
その数の 2 乗が上限を超えたら終わり
例:1000 以下の素数を数える
はおよそ 。 以下の素数は の 11 個です。
この 11 個の倍数を落とすだけで、 までの合成数がすべて消えます。残るのは 168 個。
までなら で、 以下の素数 25 個を使う。残るのは 1229 個です。
割合は薄くなっていく
個数は増え続けますが、密度は下がります。 以下では 4 個で 4 割、 以下では 25 個で 4 分の 1。

万以下では 9592 個で、割合はおよそ 1 割を切ります。それでも にはならない。
素数が現れない区間もあります。 の次の素数は で、あいだの 13 個はすべて合成数です。
範囲を広げるほど薄くなる。 万までで 1 割を切る
範囲を広げるほど増える。上限はない
別の道:オイラーの証明
素数が有限個なら、素数の逆数を使った無限積が有限の値になります。ところが、それは調和級数と等しい[1,3]。
調和級数は発散するので、有限の値には収まりません。ここから素数が無限にあると分かります。
ユークリッドの論法より道具は要るものの、素数の分布の細かさまで踏み込める強みがあります。証明は 200 通り以上あると整理されている[1]。
検算のしかた
ふるいの結果は、区間ごとに数えると確かめやすい。 から に 15 個、 から に 10 個で、合わせて 25 個。
小さい素数を落とし忘れていないかも見ます。 は素数に見えやすく、 の段で落ちるはずのものです。
を素数に数えないことも確かめる。 を含めると素因数分解の一意性が崩れます。
以下の素数をエラトステネスのふるいで求めるとき、倍数を落とす必要がある素数はどこまでですか。
- 7 まで
- 13 まで
- 100 まで
つまずきやすいところ
有限個のリストを渡されたら、掛けて を足す。それだけで、いつでも外側の素数が 1 つ手に入ります。













200 はおよそ 14.1 なので、14 以下の素数、つまり 2,3,5,7,11,13 まで落とせば終わります。7 までだと 121=112 が残ってしまう。