具体的には、ConwayのPRIMEGAME。
これは、14の有理数のシーケンスを使用して素数を生成するためにJohn H. Conwayによって考案されたアルゴリズムです。
A B C D E F G H I J K L M N
17 78 19 23 29 77 95 77 1 11 13 15 15 55
-- -- -- -- -- -- -- -- -- -- -- -- -- --
91 85 51 38 33 29 23 19 17 13 11 14 2 1
たとえば、Fは分数77/29
です。
アルゴリズムが素数を見つける方法は次のとおりです。numberから始めて、2
シーケンス内の最初のエントリを見つけます。このエントリは、乗算すると整数を生成します。ここでは、だM
、15/2
生産します、15
。次に、その整数に対して15
、乗算すると整数を生成するシーケンスの最初のエントリを見つけます。これが最後のN
、または55/1
であり、を生成し825
ます。対応するシーケンスを書き留めます。(あなたの中の鋭敏な人はこれをFRACTRANプログラムと認識するかもしれません。)
いくつかの反復の後、次のものが得られます。
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, 910, 170, 156, 132, 116, 308, 364, 68, 4 ...
リストされている最後のアイテムは4
、またはであることに注意してください2^2
。2
このアルゴリズムで生成された最初の素数(指数)を見てください!最終的に、シーケンスは次のようになります。
2 ... 2^2 ... 2^3 ... 2^5 ... 2^7 ... etc.
したがって、素数が得られます。これはOEIS A007542です。
チャレンジ
n
ゼロまたは1のインデックス付きの入力番号(任意)を指定すると、n
このシーケンスの最初の番号を出力するか、このシーケンスのn
th番目の番号を出力します。
例
以下の例はn
、ゼロインデックスシーケンスのth項を出力しています。
n output
5 2275
19 4
40 408
ルール
408.0
代わりに 408
。