Primus-Orderus Primes


15

พวกเขาเป็นใคร?

Primus-Orderus Primes (POP) เป็นช่วงเวลาที่มีคำสั่งในลำดับของช่วงเวลา
ดังนั้นnthนายกเพื่อที่จะเป็น POP จะต้องมีตัวเลขทั้งหมดnในวิธีที่ฉันจะอธิบาย

ตัวอย่าง

มาดูสิ่งที่ชัดเจนกันดีกว่า: ตัวเลขทั้งหมดnจะต้องปรากฏขึ้นท่ามกลางตัวเลขของ POP ในลำดับเดียวกันกับที่ปรากฏn

6469thสำคัญคือ64679ซึ่งเป็น POP เพราะมีตัวเลขทั้งหมด6469ในลำดับที่ถูกต้อง
1407647เป็น POP เพราะเป็น107647thจำนวนเฉพาะ

14968819เป็นPOP (นายก 968819) ดังนั้นความท้าทายนี้ไม่ใช่ OEIS (A114924)

1327 ไม่ใช่ POPเพราะเป็น217thเลขเฉพาะ (ตัวเลขไม่ถูกต้อง)

ความท้าทาย

คุณเดาถูก!
รับจำนวนเต็มnส่งออกnthPOP

กรณีทดสอบ

อินพุต -> เอาต์พุต

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

นี่คือดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ!

ทั้งหมดนี้ควรเป็น 1 ดัชนี


0-indexed, 1-indexed หรือดีลเลอร์เป็นทางเลือก?
ปุย

@Shaggy ฉันคิดว่านี่เป็น 1 ดัชนีที่เข้ากันได้กับกรณีทดสอบ (ลำดับประเภทของเรื่อง)
Mr. Xcoder

@ Mr.Xcoder มันเป็นป๊อป 1, 7 ที่สำคัญ

@MrXcoder: ใช่ขอโทษฉันอาจใช้ถ้อยคำที่ไม่ดี; สิ่งที่ฉันหมายถึงถามคืออนุญาตให้มีการจัดทำดัชนี 0 หรือไม่ เห็นได้ชัดว่าจากกรณีทดสอบอนุญาตให้มีการทำดัชนี 1 รายการได้ เรามีฉันทามติโดยวิธีการที่การจัดทำดัชนีที่เราสามารถใช้ในความท้าทายถ้าสิ่งที่เราต้องไปคือกรณีทดสอบและไม่มีการกล่าวถึงอย่างชัดเจนในรายละเอียดการท้าทาย?
Shaggy

1
ขอบคุณบิล ในขณะที่ส่วนใหญ่ความท้าทายที่ผ่านมาของคุณนั้นดีมากแต่ละเรื่องมีปัญหาเล็กน้อยหรือ 2 ที่ต้องแก้ไขในความคิดเห็นซึ่งเป็นสาเหตุที่ฉันขอแนะนำให้คุณเริ่ม Sandboxing ความท้าทายของคุณ อนุญาตให้เราตรวจจับปัญหาเหล่านั้น
ปุย

คำตอบ:


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])&


ค้นหา n = 34 ในไม่กี่นาที


2

Husk , 11 ไบต์

!fS¤o€Ṗdṗİp

ลองออนไลน์!

ไม่เร็วขนาดนั้นคำนวณ f (5) ในเวลาประมาณ 30 วินาทีสำหรับ TIO

คำอธิบาย

!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 ไบต์

ค่อนข้างมีประสิทธิภาพพบ n = 34 ใน 22 วินาทีบนTIO!

อาจจะกอล์ฟสักหน่อย

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
Halvard Hummel

โอ้ใช่ฉันไม่รู้ว่าทำไมสิ่งนั้นถึงออกมาแตกต่างในครั้งแรก ฉันอาจลืมเครื่องหมายคำพูดหรือบางสิ่งบางอย่าง
แดเนียล


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.