素数は常に人々を魅了してきました。2300年前、ユークリッドは彼の「要素」に書いた
素数とは、単位だけで測定されるものです。
つまり、素数は1
(またはそれ自体で)割り切れるだけです。
人々は常に素数間の関係を探しており、(「面白い」のような)かなり奇妙なものを思いついてきました。
たとえば、Sophie Germainプライムは、プライムp
で2*p+1
もあるプライムです。
安全素数は素数であるp
そのため(p-1)/2
正確ソフィー・ジェルマン素数の下位条件である、また、素数です。
これらは、この課題で私たちが探しているものに関連しています。
A カニンガムチェーンタイプの私は最後のものを除くすべての要素がある素数のシリーズです、ソフィー・ジェルマン素数と、最初のものを除くすべての要素がある安全素数。このチェーンの要素の数は、その長さと呼ばれます。
これは、プライムから始めてp
計算することを意味しますq=2*p+1
。q
が素数である場合、長さ2のタイプIの Cunnighamチェーンがあります。次に2*q+1
、次の生成された数が合成されるまでテストなどを行います。
タイプIIのカニンガムチェーンは、ほぼ同じ原理に従って構築されますが、唯一の違い2*p-1
は各段階で確認することです。
Cunninghamチェーンの長さは1です。つまり、2 * p + 1も2 * p-1も素数ではありません。これらには興味がありません。
カニンガムチェーンの例
2
長さ5のタイプIのチェーンを開始します。
2, 5, 11, 23, 47
次に構築される数95
は、素数ではありません。
これはまた、以下のことを教えてくれる5
、11
、23
および47
タイプのいずれかのチェーンを開始していない私を、それが要素に先行する必要があるため、。
2
また、長さ3のタイプIIのチェーンを開始します。
2, 3, 5
次はで9
、これは素数ではありません。
11
タイプIIを試してみましょう(以前にタイプIから除外しました)。
さて、21
次は、素数ではないので、この「チェーン」の長さは1になりますが、このチャレンジではカウントしません。
チャレンジ
n
入力として数値を指定すると、少なくとも長さ2のタイプIまたはIIのn番目のカニンガムチェーンの開始番号を書き込み/返すプログラムまたは関数を記述し、その後にスペース、それに続くチェーンのタイプ(IまたはII)、その後にコロン、その後にそのタイプのチェーンの長さが続きます。プライムが両方のタイプのチェーン(タイプI およびタイプII)を開始する場合、タイプI のチェーンが最初にカウントされます。例:
2 I:5
n
これは、以前に開始された任意のタイプのチェーンの一部である可能性があることに留意してください。その場合、そのタイプのチェーンの開始番号と見なされるべきではありません。
これがどのように始まるのか見てみましょう
から始め2
ます。これは最初の素数であるため、を含む下位の素数で始まるチェーンがないことを確認できます2
。
タイプIのチェーン内の次の数は次のようになります2*2+1 == 5
。5
素数なので、少なくとも長さ2のチェーンが既にあります。
これを最初のチェーンとしてカウントします。タイプIIはどうですか?次の番号はになります2*2-1 == 3
。3
素数なので、タイプIIに対して少なくとも長さ2のチェーンも。
これを2番目のチェーンとしてカウントします。そして、これで終わりです2
。
次の素数は3
です。ここで、低プライムが開始されたのがチェーン内にあるかどうかを確認する必要があります。
タイプIを確認します(3-1)/2 == 1
。1
は素数ではないので、3はタイプIのチェーンの開始点になる可能性があり
ます。それを確認しましょう。次は3*2+1 == 7
。7
素数なので、少なくとも長さ2のタイプIのチェーンがあります。これを3番目のチェーンとしてカウントします。
次に3
、低プライムが開始したタイプIIチェーンに表示されるかどうかを確認します。
(3+1)/2 == 2
。2
素数であるため、タイプIIのチェーンの開始番号として3を考慮することはできません。そのため3
、このチェーン内の次の数字が次の場合でも、これはカウントされません。5
、素数です。(もちろん、私たちはすでにそれを知っていたので、これらのチェックを行う方法を独自の方法について考えることができますし、当然考えるべきです。)
そして、私たちはのためにチェックし5
、7
、11
我々は少なくとも長さ2のn番目のカニンガムチェーンを見つけるまでのカウント、上のようにして。
次に(または、少し前に;)
)、見つかったチェーンの完全な長さを特定し、前述の形式で結果を出力する必要があります。
ちなみに、私のテストでは2
、長さがを超える両方のタイプのチェーンを開始する以外の素数は見つかりませんでした1
。
入出力の例
入力
1
出力
2 I:5
入力
10
出力
79 II:3
入力
99
出力
2129 I:2
入力1..20の出力
2 I:5 2 II:3 3 I:2 7 II:2 19 II:3 29 I:2 31 II:2 41 I:3 53 I:2 79 II:3 89 I:6 97 II:2 113 I:2 131 I:2 139 II:2 173 I:2 191 I:2 199 II:2 211 II:2 229 II:2
最初の5000の出力のリストは、ここにあります。
これはコードゴルフです。出力では任意の空白を使用できますが、例に示すように、タイプと数字は単一のスペースとコロンで区切る必要があります。抜け穴を使用することは許可されていません。特にWebから結果を取得することは許可されていません。
幸運を :)
:)
2
し、3
唯一の素数ありp
、両方のために2p-1
と2p+1
素数なので、2
唯一の素数で開始し、両方のタイプの非自明なカニンガムチェーンが。