新しい素数を探すにはどうすればいいだろうか。素数を探すにはエラトステネスの篩があるがこれ以外にも、例えば素数\(P\)について
\begin{align}
Q=1+\prod_{i=1}^{N} P_{i}
\end{align}
のような数を考えれば良い。この方法の弱点は連続する素数の積を必要にすることにあり、1つでも分かっていない場合求めることができなくなってしまう。
計算すると次のような結果が得られる
\(i\) | \(1+\prod_{i=1}^{N} P_{i}\) |
1 | 3 |
2 | 7 |
3 | 31 |
4 | 211 |
5 | 2311 |
6 | 30031 |
7 | 510511 |
8 | 9699691 |
9 | 223092871 |
10 | 6469693231 |
11 | 200560490131 |
12 | 7420738134811 |
13 | 304250263527211 |
14 | 13082761331670031 |
15 | 614889782588491411 |
16 | 32589158477190044731 |
17 | 1922760350154212639071 |
18 | 117288381359406970983271 |
19 | 7858321551080267055879091 |
20 | 557940830126698960967415391 |
21 | 40729680599249024150621323471 |
22 | 3217644767340672907899084554131 |
23 | 267064515689275851355624017992791 |
24 | 23768741896345550770650537601358311 |
25 | 2305567963945518424753102147331756071 |
得られた数はたしかに素数である。ちなみに、今現在発見されている最も大きな素数はとても大きな数で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)
コメント