Primus-Orderus Primes


15

Loro chi sono?

Primus-Orderus Primes (POP) sono numeri primi che contengono il loro ordine nella sequenza dei numeri primi.
Quindi il numero nthprimo, per essere POP, deve contenere tutte le cifre nin un certo modo che spiegherò.

Esempi

Cerchiamo di chiarire le cose: tutte le cifre di ndevono apparire tra le cifre di POP nello stesso ordine in cui appaionon

Il 6469thprimo è 64679che è POP perché contiene tutte le cifre 6469nell'ordine giusto.
1407647è POP perché è il 107647thnumero primo

14968819 è POP (968819th prime). Quindi questa sfida NON è OEIS (A114924)

1327 NON è POP perché è il numero 217thprimo (le cifre non sono nell'ordine giusto)

La sfida

Hai indovinato bene!
Dato un numero intero n, genera il nthPOP

Casi test

input-> output

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

Questo è quindi vince la risposta più breve in byte!

Tutti questi dovrebbero essere 1-indicizzati


0 indicizzato, 1 indicizzato o scelta del rivenditore?
Shaggy,

@Shaggy Penso che questo sia 1 indicizzato in modo che sia compatibile con i casi di test (il tipo di ordine delle cose).
Mr. Xcoder,

@ Mr.Xcoder È il 1 ° POP, 7 ° primo

@MrXcoder: sì, scusa, probabilmente ho espresso male; cosa intendevo chiedere è consentito l'indicizzazione 0? Ovviamente, dai casi di test, è consentita l' indicizzazione 1 . Abbiamo un consenso, a proposito, su quale indicizzazione possiamo usare in una sfida se tutto ciò che dobbiamo affrontare sono i casi di test e non vi è alcuna menzione esplicita nelle specifiche della sfida?
Shaggy,

1
Grazie Bill. Mentre, per la maggior parte, le tue recenti sfide sono state molto buone, ognuna di esse ha avuto un problema minore o 2 che ha dovuto essere chiarito nei commenti, motivo per cui ti suggerirei di iniziare a sandboxare le tue sfide, a ci permettono di cogliere questi problemi.
Shaggy,

Risposte:


3

Mathematica, 104 byte

Estremamente efficiente

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


trova n = 34 in meno di un minuto


2

Buccia , 11 byte

!fS¤o€Ṗdṗİp

Provalo online!

Non così veloce, calcola f (5) in circa 30 secondi su TIO

Spiegazione

!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

Abbastanza efficiente, trova n = 34 in 22 secondi su TIO!

Probabilmente potrebbe essere giocato un po 'a golf

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

Provalo online!


@Dopapp, non aggiungerebbe byte? __import__("gmpy2").è più lungo difrom gmpy2 import*\n
Halvard Hummel il

Oh giusto, non so perché sia ​​uscito diverso la prima volta. Probabilmente ho dimenticato le virgolette o qualcosa del genere
Daniel,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.