Primus-Orderus Primes


15

彼らは誰なの?

Primus-Orderus Primes(POP)は、素数の順序順序を含む素数です。
そのnthため、POPになるためにnは、特定の方法ですべての数字をプライムに含める必要があります。

物事を明確にしましょう:すべての数字 n、POPの数字の中に現れる順番と同じ順番で現れる必要がありますn

6469th素数である64679、それはすべての数字が含まれているため、POPで6469正しい順序でを。
1407647それはPOPです107647th素数

14968819POP(968819th prime)であるため、このチャレンジはOEISではありません (A114924)

1327は素数であるためPOPではありません217th(数字は正しい順序ではありません)

チャレンジ

あなたは正しいと思いました!
整数を指定するnと、nthPOPを出力します

テストケース

入力->出力

1->17
3->14723    
5->57089
10->64553 
29->284833  
34->14968819

これはので、バイト単位の最短回答が勝ちです!

これらはすべて1インデックスである必要があります


0インデックス、1インデックス、またはディーラーの選択?
シャギー

@Shaggyこれはテストケースと互換性があるように1インデックスであると思います(順序の種類の問題)。
ミスターXcoder

@ Mr.Xcoder 1番目のPOP、7番目のプライム

@MrXcoder:ええ、ごめんなさい、私はたぶんそれを下手に言いました。私が尋ねることが意味していたことは、0インデックス作成は許可されていますか 明らかに、テストケースからは、1インデックス許可されています。ちなみに、テストケースのみで、チャレンジ仕様に明示的な言及がない場合、チャレンジで使用できるインデックス付けについてのコンセンサスはありますか?
シャギー

1
ありがとう、ビル。ほとんどの場合、最近の課題は非常に良好でしたが、それぞれにマイナーな問題または2つのコメントがあり、それらをコメントで解決する必要がありました。そのため、課題をサンドボックス化することをお勧めします。これらの問題をキャッチできます。
シャギー

回答:


3

Mathematica、104バイト

非常に効率的

(t=i=1;While[t<#+1,If[!FreeQ[Subsets[(r=IntegerDigits)@Prime@i,{Length@r@i}],r@i],t++];i++];Prime[i-1])&


1分以内にn = 34を見つける


2

、11バイト

!fS¤o€Ṗdṗİp

オンラインでお試しください!

TIOで約30秒でf(5)を計算します

説明

!fS¤o€Ṗdṗİp
 f       İp    Filter the list of prime numbers and keep only those for which:
  S¤o€Ṗdṗ       The "d"igits of its index in the "ṗ"rime numbers are an "€"lement of the 
                  "Ṗ"owerset of its "d"igits
!              Return the element at the desired index of this filtered list

2

Python 2 + gmpy2 188 162バイト

非常に効率的で、TIOで22秒でn = 34を見つけます!

おそらく少しゴルフができる

from gmpy2 import*
def F(a,b):
 i=k=0
 while b[i:]and a[k:]:k+=a[k]==b[i];i+=1
 return"0">a[k:]
x=input()
u=z=1
while x:z=next_prime(z);x-=F(`u`,`z`);u+=1
print z

オンラインでお試しください!


@Dopapp、それはバイトを追加しませんか? __import__("gmpy2").より長いfrom gmpy2 import*\n
ハルバードフンメル

ああ、最初はなぜそれが違うのかはわかりません。私はおそらく引用符か何かを忘れていました
ダニエル


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.