abc… × xyz…
(桁を保ったままにするため)桁数計算に注意
10000ax+1000ay+100az…+1000bx+100by+10bz…
+100cx+10cy+cz…=r
と書ける
123×456の場合
40000+5000+600+8000+1000+120+1200+150+18
=56088
…どこに注目すれば良いだろうか
素数とはこのような式が全く成り立たない数のことである
具体的には…
各桁が1や0並びの倍数を除くとやはり7の数論的性格が分かると素数問題は解決する
7にまつわる素数積は7×7の他3×7、3×9、1×7、9×9しかない
下一桁に見事に1、3、7、9が登場するが、この場合以外は考慮する必要がない
下一桁が7の場合は構わず7が下階にくる上桁の積だけを考えれば良い…
(下2桁目が0か7以外の積数値はない)
下一桁が1の場合は2が繰り上がる下二桁から2を引くと上階の二桁目が分かるか、8が繰り上がる下2桁から8を引く
下一桁が3の場合は6が繰り上がる下二桁から6を引くと上階の二桁目が分かる
下一桁が9の場合は4が繰り上がる下二桁から4を引くと上階の二桁目が分かる
上階の二桁目の積はabc… × xyz…のbz+cy+繰り上がり数と定まる…あとはab×xyが(bz+cy+繰り上がり数)の繰り上がり数を上階の積から引いてそれが10未満の整数になる7を最下階とする素数の積pq…7になっていないかを確認すれば良い(その上桁が10を超えるときは1を引いて下桁に10を加える)
同様にpq…1、pq…3、pq…9も計算する
非素数の数値に含まれているいかなる素数成分をその何倍数でもそれに足してもそれは非素数…地道に非素数を出してゆきたいならそれを考えれば良い
任意の自然数をnで割るとその余りはn進数になる。n進数を元に戻すには、桁が繰り上がるごとに10-nを加えれば良い…このようなアプローチで考えると、もっと素数の問題もスマートに考えられるのかも知れない。
以上は素数の排除法である。
総括として素数の定義を与えておく。
すべての素数そのもの、またはすべての素数に同数素数をそれらに偶数回足してもつぶれない数の並びが素数(ただし、2以外の偶数もすべてつぶす)。
ないし
素数になる数の考えられるパターンは5x(奇数)+2、5(1を除く奇数)+2+2、5x(6の倍数を除く偶数)+3、5x(3の倍数を除く奇数)+3+3のみ、したがってそれらが他の素数の素数倍数でなければ素数。
素数の素数倍数は素数の以下の特性を使って求めると良い。
素数xにつき、x+10x+100x+1000x+…はxの倍数なので、そこから素数倍数回xを引けば良い。あるいはもっと単純にxの素数倍数積を求めれば良い。
なお、これを素数の条件式24n+1、6m±1、各桁の和が3と9の倍数の数はそれぞれ3と9の倍数であることと併せて勘案すれば、千分の1以下の労力で素数を計算することができる。手計算では労力がいるが、コンピュータープログラムにすれば相当な早さで素数と非素数の区分けができるであろう。
素数の成り立ち(29以上の素数につき)
すべての素数は素因数の完全に違う(重ならない、一方に素因数2を含む)数の和らしい(これでなぜ数の大きな素数が減っていくのかも理解できる)
ある2を含む素因数を持つ数+ある素因数以外の素因数を持つ数(素因数はそれぞれ2つずつ選択)
例)14+15、10+21、22+15、6+35、22+21、26+15、22+21、14+33、…
2、3、5、7、11、13、17、19、23、29、31、37、41、43…(2は必須)
×
上で選択した数字と1つも被らない
3、5、7、11、13、17、19、23、29、31、37、41、43…
上記条件を満たす任意の2つの素因数を持つ数の和=素数
そこから分かる素数の定義は、したがって、ある数が別々のそれぞれ2つの素因数(一方には必ず素因数2がある)を持つ数の和に分解できるとき、それは素数である、となる。
…まぁ、この素数のでき方が素数にはたらく法則と言えば法則なのだろう。
…しかし、例外が多すぎる。
2025年12月28日 新訂