Số nguyên tố Primus-Orderus


15

Họ là ai

Các số nguyên tố Primus-Orderus (POP) là các số nguyên tố chứa thứ tự của chúng trong chuỗi các số nguyên tố.
Vì vậy, số nthnguyên tố, để là POP, phải chứa tất cả các chữ số ntheo một cách nhất định mà tôi sẽ giải thích.

Ví dụ

Hãy làm mọi thứ rõ ràng hơn: Tất cả các chữ số nphải xuất hiện trong số các chữ số của POP theo cùng thứ tự chúng xuất hiện trongn

Số 6469thnguyên tố là 64679POP vì nó chứa tất cả các chữ số 6469theo đúng thứ tự.
1407647là POP vì nó là 107647thsố nguyên tố

14968819POP (số nguyên tố 968819). Vì vậy, thách thức này KHÔNG phảiOEIS (A114924)

1327 KHÔNG phảiPOP vì nó là số 217thnguyên tố (các chữ số không theo đúng thứ tự)

Các thách thức

Bạn đoán đúng rồi!
Cho một số nguyên n, xuất ra nthPOP

Các trường hợp thử nghiệm

đầu vào-> đầu ra

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

Đây là vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng!

Tất cả những thứ này nên được lập chỉ mục 1


Lựa chọn 0 chỉ mục, 1 chỉ mục hay thỏa thuận?
Xù xì

@Shaggy Tôi nghĩ rằng đây là chỉ mục 1 sao cho tương thích với các trường hợp thử nghiệm (Loại vấn đề theo thứ tự).
Ông Xcoder

@ Mr.Xcoder Đây là POP đầu tiên, thứ 7

@MrXcoder: vâng, xin lỗi, tôi có thể nói sai điều đó; ý tôi muốn hỏi là 0-indexing được phép? Rõ ràng, từ trường hợp thử nghiệm, 1-indexing được phép. Nhân tiện, chúng ta có đồng thuận không, chúng ta có thể sử dụng lập chỉ mục nào trong thử thách nếu tất cả những gì chúng ta phải làm là các trường hợp thử nghiệm và không có đề cập rõ ràng nào trong thông số kỹ thuật thử thách?
Xù xì

1
Cảm ơn, Bill. Trong khi, phần lớn, các thử thách gần đây của bạn rất tốt, mỗi thử thách đều có một vấn đề nhỏ hoặc 2 phải được làm rõ trong các bình luận, đó là lý do tại sao tôi khuyên bạn nên bắt đầu Sandboxing các thử thách của mình, để cho phép chúng tôi nắm bắt những vấn đề đó.
Xù xì

Câu trả lời:


3

Toán học, 104 byte

Cực kỳ hiệu quả

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


tìm thấy n = 34 trong dưới một phút


2

Husk , 11 byte

!fS¤o€Ṗdṗİp

Hãy thử trực tuyến!

Không nhanh như vậy, tính f (5) trong khoảng 30 giây trên TIO

Giải trình

!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 byte

Khá hiệu quả, tìm thấy n = 34 trong 22 giây trên TIO!

Có lẽ có thể chơi golf một chút

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

Hãy thử trực tuyến!


@Dopapp, sẽ không thêm byte? __import__("gmpy2").dài hơnfrom gmpy2 import*\n
Halvard Hummel

Ồ phải rồi tôi không biết tại sao lần đầu tiên lại khác. Tôi có lẽ đã quên dấu ngoặc kép hoặc một cái gì đó
Daniel


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.