本稿は、3月14日に投稿した『素数の謎に挑戦⁉️』(この記事の最後にリンクあり)の続編になります。
解明したい命題は…
『各位の数字が全て「1」の数(3桁以上)のなかに素数は存在するか?』
前回の投稿では、16桁まで調べました。(11以外に素数はなかった)
しかし、11111111111111111(17桁)は、パソコンを使っても素数かどうか判定できませんでした。
その主要因は以下の二つです。
1️⃣ソースプログラムの瑕疵
変数の型宣言に問題がありそうです。
初心に立ち返ってC言語のバイブルを確認。
int型変数のメモリに格納できる整数値の最大値は2147483647(10桁)。
なので変数は64bitのlong long型で宣言します。
しかし、long long型の変数も19桁までしか扱えません。
2️⃣ハードウェアの性能不足
パソコンにも問題があります。
処理速度がカメのように遅いです😰
Cコンパイラが古くてWindows10に非対応のため、使用したパソコンはサブマシン(Windows7、32bit版)です。
上記2つの難点を可能な限り手直ししましたが…
所詮パソコンでは…
仮に、100万個の数を検査するのに1秒かかるとすると、20桁の数を検査するには1兆倍の時間(1兆秒)が必要になります。
1兆秒とは3万1千710年です。
なのでパソコンでは、原理的には有限の時間で処理できても、永劫の時間がかかるため、現実的には不可能です。
現行のアルゴリズムを変えない限り、パソコンでは20桁前後が限界です。
17,18 桁の素数判定
▶︎冒頭の命題の結論です。
17桁は素数ではありません。11111111111111111(17桁)
= 2071723 × 5363222357
7桁の素因数がありました。
▶︎18桁は少なくとも3で割り切れます。
結論
以上より解ったことは、以下の通り。
『n>2 のとき、素数となるXnは存在するか?』なる命題に対し、『2<n≦18なるXnは素数ではない』
ということだけです。
前述した「パソコンによる素数判定は20桁前後が限界」という推定に基づきここで検討を終了します。
ところが、この記事には続きがあります。
Youtubeやネットを探索していたら…
驚愕のコンテンツを発見😱
世の中には、酔狂な人がいるものですね(お前が言うな😅)
素数に取り憑かれたYouTuber
そして、ついに発見!
「1が連続する数の素数判定」をまとめた記事がありました。
少しのことにも、先達はあらまほしき事なり。(徒然草)
なんと、
19桁は素数でした。(18桁まで調べたのに😢)
23桁も素数です。
そして次の素数は…
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111(317桁)
これが素数だって😱
24〜316桁までの293個の素数候補は全て合成数だったのに…
でも、これどうやって見つけたのだろう?
謎です😰
▼前回の記事
↓ ↓
素数の謎に挑戦❗️ 〜Kさんが計算してみたよ😊 - こに〜 の ざれごと