1000以下の素数は250個以下であることを示せ。

2021年、一橋大学の入試問題。ついこないだ出題されたばかりのホヤホヤ。
問題はたった1行。ぶっきらぼうにも程があるが、問題としてはなかなか面白い。

素数を手計算で簡単に並べ上げるアルゴリズムは無いから、余事象をとって「素数ではないものが750個以上ある」ことを示すことになる。
つまり、この問題は整数問題に見えて、実際のところは集合問題だ。余事象をとって、集合の積を排除して和集合の濃度を導く、という集合論の基本さえ身に付いていれば、機械的な計算で解ける。

この問題の面白いところは、「力技でしらみつぶしに調べ上げるとき、どの程度まで力を使う必要があるか」を見極めることができるかどうかによって、難易度が著しく変わることだ。
「素数ではないもの」、つまり素因数をもつ数を調べるのであれば、2の倍数、3の倍数、5の倍数、7の倍数、11の倍数… と素数の倍数を「1以上1000以下の数」から数え上げていけばいい。問題は、倍数を数え上げる素数をどの程度まで調べなくてはならないのか、だ。

素数2, 3, 5あたりに関しては簡単だから簡単に数え上げられる。
2の倍数は、1000÷2=500個
3の倍数は、1000÷3=333個
5の倍数は、1000÷5=200個
これだけで1033個。ここから「重なり」を引かなくてはならない。
6の倍数(2と3の公倍数)は、1000÷6=166個
10の倍数(2と5の公倍数)は、1000÷10=100個
15の倍数(3と5の公倍数)は、1000÷15=66個
さらにここから、「過剰に引いた分」を足し直す。
30の倍数(2と3と5の公倍数)は、1000÷30=33

よって、1以上1000以下の数のうち、2,3,5の倍数のものは
500+333+200-166-100-66+33=734
734個ある。 つまり、1以上1000以下の数で、2, 3, 5の倍数かつ素数でないものは、2, 3, 5(こいつらは素数)自身を除くから、
734-3=731個ある。

ここで話が終われば話は簡単なのだが、この数字では、欲しい数「750個」にちょっと足りない。
つまり題意を満たす「素数でない数」を求めるのに、2, 3, 5という素数の倍数だけでは足りず、その先までちょっと調べなければならない、というところが一橋大学の意地悪なところだろう。

ここで、「では7の倍数を調べよう」「それでも足りなければ11の倍数を調べよう」… と考えるのは、単純ではあるが思考力が足りない。面倒くさいからだ。
2, 3, 5の倍数でやった思考法を、7の倍数、11の倍数、13の倍数… と拡張していくと、その分だけ集合の交わりの部分を排除する処理が面倒になる。ここはひとつ、上で計算した「731個」(=2,3,5の倍数)という数をこれ以上操作することなく、楽に答えを導きたい。

5よりも大きい素数を調べると、7, 11, 13, 17, 19, 23, 29, … と続く。これらの数同士を掛け合わせた数は、素数ではないし、2,3,5の倍数でもない(つまり「731個」に含まれない)。
上記7つの素数から任意のふたつを選んで掛け合わせた数は、7C2=21通り。これは先ほど求めた731個には含まれないので、足し合わせると752通り。つまり「1から1000までの数には、素数ではない数が752個は確実に存在する」。
余事象をひっくり返すと、1000以下の素数は1000-752=248個以下であり、題意の通り250個以下であることが示される。(Q.E.D.)


昨今、コロナ禍で行政の臨時措置や時限立法など、「その場限りの対処」が増えてきている。
その対処に四苦八苦し、特に飲食店が苦境に晒されているのは周知の事実だろう。

コロナ禍のような、単一の手法で解決案が見いだせない状況では、様々な手段を累積的に積み重ねなくてはならなくなる。複雑な問題を解決するときには、先に打った手が、後に打った手と矛盾してしまう、という混乱が生じることがある。
僕の印象として、そういう矛盾するような施策をとってしまう人というのは、いいかげんな人なのではなく、「愚直なまでに基本方針に忠実な人」に多いような気がする。

コロナ禍が一般市民に蔓延するのを防止する、という方針を真面目に突き詰めれば、ロックダウンのような強制封鎖が良いに決まってる。しかし、そうなれば飲食店や販売店は経営が立ち行かなくなる。どちらかを取ればどちらかが立たない、そういう矛盾した状況に対処しなければならない時は、どうすればいいのか。

非常事態宣言を出して一般市民の行動を制限しようとする政治家も、GoToキャンペーンのような人とモノの流通を促進する政策を打ち出す政治家も、ともに自らの「正義」に従って「信念」で行動しているのだと思う。世の中を悪くしようとしているのではなく、彼らは彼らなりに世の中を良くしようと思っているのだろう。
そして、そのような「信念」が固い人ほど、矛盾する状況があったり、問題が複雑になり過ぎて単一手法では解決し得なかったりする状況に弱い。「固い信念」は、時として柔軟性を損ない、現実に対処できなくなる危険性を孕んでいる。

上に挙げた一橋大の問題でも、単純に「2, 3, 5で行った演算を、そのまま7, 11, 13,…と拡げていけばよい」と考える人は、泥沼に嵌る。基本に忠実ではあるのだろうが、頭が固く、「一度うまくいったから」という硬直した思考回路から抜け出せない。
いちど上手くいった施策でも、後から追加手段を追い討ちする時には、「前に打った手段と矛盾しないように隙間を縫って手を打つ」という調整力が必要になる。

数学を学べばそのような能力が身に付く、という単純な話ではないが、昨今の世情を見てみると、あまりに理性に欠け、「信念」一本やりで行動している行政者が多過ぎる気がする。個人的には、固過ぎる信念に執着する政治家など、信用に値しない。状況が変化しても対処手段を変えることができず、しまいには「自分のとった方策が正しいことを示すことのみに血道を上げる」という本末転倒なことになる。

世の中の問題には、数学のような絶対解はない。どのみち、その場に居合わせた人々の最大公約数的な「最適解」を模索する以外にはない。
しかし、その「模索」する方法論を、安易に情緒や信念に頼り過ぎ、理詰めで考える方法論が放棄され過ぎているように見える。



指折って数えるだけで解けました。