Primus-Orderus Primes


15

Quem são eles?

Primos Primus-Orderus (POP) são primos que contêm sua ordem na sequência de primos.
Portanto, o nthprimo, para ser POP, deve conter todos os dígitos de numa certa maneira que eu explicarei.

Exemplos

Vamos esclarecer as coisas: todos os dígitos de ndevem aparecer entre os dígitos de POP na mesma ordem em que aparecem emn

O 6469thprincipal é 64679POP, porque contém todos os dígitos 6469na ordem correta.
1407647é POP porque é o 107647thnúmero primo

14968819 é POP (968819th prime). Portanto, este desafio NÃO é OEIS (A114924)

1327 NÃO é POP porque é o 217thprimo (os dígitos não estão na ordem correta)

O desafio

Você adivinhou certo!
Dado um número inteiro n, imprima o nthPOP

Casos de teste

entrada-> saída

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

Isso é então a resposta mais curta em bytes vence!

Todos estes devem ser 1-indexados


0 indexado, 1 indexado ou a escolha do revendedor?
Shaggy

@ Shagy Acho que isso é indexado em 1, de forma que seja compatível com os casos de teste (o tipo de ordem é importante).
Xcoder

@ Mr.Xcoder É o 1º POP, 7 nobre

@ MrXcoder: sim, desculpe, eu provavelmente escrevi mal isso; o que eu queria perguntar é permitida a indexação 0? Obviamente, nos casos de teste, a indexação 1 é permitida. A propósito, temos um consenso sobre qual indexação podemos usar em um desafio se tudo o que temos a fazer são os casos de teste e não há menção explícita nas especificações do desafio?
Shaggy

1
Obrigado, Bill. Embora, na maioria das vezes, seus desafios recentes tenham sido muito bons, cada um deles teve um problema menor ou 2 que precisou ser esclarecido nos comentários, e é por isso que eu sugiro que você inicie o Sandboxing de seus desafios, para nos permitem capturar esses problemas.
Shaggy

Respostas:


3

Mathematica, 104 bytes

Extremamente eficiente

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


encontra n = 34 em menos de um minuto


2

Casca , 11 bytes

!fS¤o€Ṗdṗİp

Experimente online!

Não tão rápido, calcula f (5) em cerca de 30 segundos no TIO

Explicação

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

Bastante eficiente, encontra n = 34 em 22 segundos no TIO!

Provavelmente poderia ser jogado um pouco

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

Experimente online!


@ Dopapp, isso não adicionaria bytes? __import__("gmpy2").é mais longo quefrom gmpy2 import*\n
Halvard Hummel

Oh, certo, eu não sei por que isso saiu diferente da primeira vez. Eu provavelmente esqueceu as aspas ou algo
Daniel


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.