【素数】新しい素数を探すには

新しい素数を探すにはどうすればいいだろうか。素数を探すにはエラトステネスの篩があるがこれ以外にも、例えば素数\(P\)について

\begin{align}
Q=1+\prod_{i=1}^{N} P_{i}
\end{align}

のような数を考えれば良い。この方法の弱点は連続する素数の積を必要にすることにあり、1つでも分かっていない場合求めることができなくなってしまう。

計算すると次のような結果が得られる

\(i\)\(1+\prod_{i=1}^{N} P_{i}\)
13
27
331
4211
52311
630031
7510511
89699691
9223092871
106469693231
11200560490131
127420738134811
13304250263527211
1413082761331670031
15614889782588491411
1632589158477190044731
171922760350154212639071
18117288381359406970983271
197858321551080267055879091
20557940830126698960967415391
2140729680599249024150621323471
223217644767340672907899084554131
23267064515689275851355624017992791
2423768741896345550770650537601358311
252305567963945518424753102147331756071

得られた数はたしかに素数である。ちなみに、今現在発見されている最も大きな素数はとても大きな数で2486万2048桁らしい。

以下コード

Q = 1
Plist = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

for i in Plist:
    Q = Q*i
    print(Q+1)

コメント

タイトルとURLをコピーしました