単純な命題だけど…
※ 素数とは、『2 以上の自然数で約数が 1 と自分自身のみであるもの』(2,3,5,7…)
この命題のスマートな証明が見つかりません。力ずくでシラミつぶしに調べるしかないのだろうか?
リーマン予想の本を読んで、素数の深遠さにとても興味を覚えました。
リーマン予想は素数の分布についての結果を含んでいる純粋数学の最も重要な未解決問題の一つ。クレイ数学研究所のミレニアム懸賞問題(賞金100万ドル)の1つでもある。
更に関連書を読んで…
素数はとても神秘的だ!
素数に魅せられて…
ここ数日は、街を歩いていても、すれ違う自動車のナンバープレートを見てその数が素数か否かを考えてしまいます。
左)5293=67×79 素数でない
中)263 素数です
右)1111=3×37 素数でない
右のナンバープレート面白い数ですね。
各位の数字が全て1の数です。
このような数の素数判定をしてみよう!←これがドツボにハマることになります😰
111111• • を調べる
▶︎11は… 2桁の最小の素数
▶︎111=3×37 素数でない
▶︎1111=11×101 素数でない
11以外に素数はあるの⁉️
調べてみます。
すなわち、
『n>2 のとき、素数となるXnは存在するか?』
という命題を検証します。
【 n=7まで調べてみた】
3〜7桁に素数はありません。
素因数の候補が大きくなってくると手計算では7桁が限界です。
パソコンの出番です!
【 n>7 の数について調べる】
C言語でプログラムしてパソコンで判定しよう。
ソースプログラムのフローとしてはこんな感じかな。
※ 少し冗長なプログラムになっています。調べる数の平方根までの因数を調べればよいのですが、平方根を呼び出すライブラリーが見つからなかったので、調べる数未満の因数まで検査しています。
このソースコードに変数の型宣言を変更するなどの改良を加えて、素因数が出てきた時点でその素因数を表示してプログラムを終了するように改良しました。(表示される素因数は最小のものになります)
しばらくして気付いたのですが、1が連続した数が素数かどうかを調べる際、桁数が3の倍数のものは3の因数を持つことは自明です。
10、100.1000などは3で割ると1余ります。桁数が3n桁なら余りも3の倍数になります→3で割り切れる。
また、偶数桁数の数についても調べるする必要はないようです。
11以外の偶数桁の数は素数にならないです。例えば、6桁の場合2桁ずつ3つに分けて111111=110000+1100+11=11×(10000+100+1)。
よって、素数を見つけるためには、3の倍数以外の奇数桁の数のみを調べれば良いことになります。
おそらく、桁数が素数の場合だけを調べれば良いのでしょうが、桁数が素数かどうかの判定プログラムが面倒です。
▶︎8〜16桁までの結果です。
赤い下線を付した3つの数が素数かどうかの判定はしていません。
素数はありません。
n=17(17桁)の場合は…
冒頭の写真の命題に辿り着きました。
素数判定プログラムが停止しません。
X17は素数⁉️
否、プログラムでは、「素因数が見つかる」もしくは「Xまでの因数を全て調べ終わった」の何れかの場合にプログラムが終了するようになっています。
なので、この状態は「まだ、全ての因数を調べて尽くしていない」ということです。
X17が素数かどうかはまだ未解決です😂
今後について
『各位の数字が1の数で、11以外の素数は存在するのか?』
まだ、この命題は未解決ですが、本稿は途中経過です。
また、プログラムがうまく走らない原因もほぼ推定できているので、新たな知見が得られたら続編を投稿しますので、また読んでくださいネ😅