未知の数が素数かどうかを確実に見極める上で、古代ギリシャの学者エラトステネスが考案したエラトステネスの篩のアルゴリズムは現代でも色あせない威力を誇ります。この仕組みを理解すると、素数判定法の仕組みが直感的に腹落ちします。
1から100までの数から素数を探す場合、手順は以下の通りシンプルです。
1. まず「1」を消去する。
2. 最小の素数「2」を残し、それ以外の2の倍数をすべて消去する。
3. 次に残っている「3」を残し、それ以外の3の倍数をすべて消去する。
4. 「5」を残し、それ以外の5の倍数を消去する。
5. 「7」を残し、それ以外の7の倍数を消去する。
驚くべきことに、100までの判定であれば「7の倍数」まで消した時点で、残った数は自動的にすべて素数になります。なぜなら、合成数 N は必ず「√N 以下の素数の約数」を持つからです。100の平方根は10(√100 = 10)ですから、10以下の素数である「2、3、5、7」の倍数をチェックするだけで十分なのです。
この原理を応用したのが、計算問題を劇的にスピードアップさせる素因数分解のコツです。大きな数に直面した際は、以下のステップで素数の見分け方を適用します。
・2の倍数判定:一の位が偶数(0, 2, 4, 6, 8)なら即座に除外。
・3の倍数判定:すべての桁の数字を合計し、その和が3の倍数なら除外(例:111 → 1+1+1=3なので3の倍数)。
・5の倍数判定:一の位が0または5なら除外。
・7、11、13のチェック:上記に当てはまらない場合、その数の平方根以下の小さな素数で順に割り切れるか確かめる。
例えば「221」という数に出会った場合、√221は約14.8です。調べるべき素数は「2, 3, 5, 7, 11, 13」の6個だけ。2, 3, 5は即座に対象外と分かり、7で割ると余り4、11で割ると余り1、そして13で割ると「221 ÷ 13 = 17」と割り切れるため、素数ではなく「13 × 17」の合成数であると判定できます。闇雲に計算するのではなく、判定の上限(平方根)を意識することが実戦的なコツです。