これはシーケンスA054261です。
素数封じ込め番号番目は、第含ま最小数であるのサブストリングとして素数を。たとえば、番号は、サブストリングとして最初の3つの素数を含む最小の番号であり、3番目の素数格納番号になります。
最初の4つの素数封じ込め番号があることを把握することは簡単です、、および、しかし、それはより面白いです。次の素数は11であるため、次の素数の包含番号はではありませんが、プロパティで最小の数として定義されているため、です。
ただし、11を超えると実際の課題が発生します。次の素数の包含番号はです。この数値では、部分文字列と が重複していることに注意してください。番号も番号と重複しています。11
13
3
13
次の番号は、その前にある番号のすべての基準を満たし、さらに1つのサブストリングを持つ必要があるため、このシーケンスが増加していることを証明するのは簡単です。ただし、n=10
との結果が示すように、シーケンスは厳密には増加していませんn=11
。
入力
単一の整数n>0
(0インデックスを付けてからを作成することもできますn>=0
)
出力
どちらのn
目プライム封じ込め番号、または最初に含まれているリストn
プライム封じ込め番号を。
私がこれまでに見つけた数字は次のとおりです。
1 => 2
2 => 23
3 => 235
4 => 2357
5 => 112357
6 => 113257
7 => 1131725
8 => 113171925
9 => 1131719235
10 => 113171923295
11 => 113171923295
12 => 1131719237295
はすべての数字を含む最小の数字であるが、も含むため、n = 10
とn = 11
は同じ数字であることに注意してください。
これはコードゴルフとマークされているので、ゴルフを始めましょう!ブルートフォースソリューションは許可されますが、コードは理論上のあらゆる入力に対して機能する必要があります(つまり、最初のn個の素数を連結することはできません)。ハッピーゴルフ!
P
演算子は、(数が素数の配列にあるかどうかをチェックする代わりに)数の素数をチェックするために明示的なマッピングを作成しますか?これは美しいソリューションです。より少ないコマンドを使用してソリューションを作成できるとは思いません。