Los primos recursivamente primos son una secuencia de primos tales que
p(1) = 2
p(n) = the p(n-1)th prime
Aquí hay un ejemplo de cómo se podría calcular el 4º Recursively Prime Prime.
p(4) = the p(3)th prime
p(3) = the p(2)th prime
p(2) = the p(1)th prime
p(1) = 2
p(2) = the 2nd prime
p(2) = 3
p(3) = the 3rd prime
p(3) = 5
p(4) = the 5th prime
p(4) = 11
Debe escribir un programa o función que, cuando se le da n, genera el enésimo Recursively Prime Prime.
Puede elegir usar indexación basada en 0 si lo desea, en cuyo caso debe indicarlo en su respuesta.
Este es el código de golf, por lo que el objetivo es minimizar el recuento de bytes.
Casos de prueba
1 -> 2
2 -> 3
3 -> 5
4 -> 11
5 -> 31
6 -> 127
7 -> 709
8 -> 5381
9 -> 52711
Entrada relevante de OEIS: OEIS A007097
⁸
.¡
solo acepta nilads como repeticiones y valor predeterminado para ingresar si no se encuentra ninguno?<f><n>¡
acepta felizmente átomos monádicos o diádicos para<n>
. Sin embargo, si<f>
es un nilad, algo debe estar mal, por lo que se analiza como en su<f>¡
lugar y toma la última entrada (último argumento de la línea de comandos, STDIN es que no hay ninguno) como en su<n>
lugar.JavaScript (ES6), 71 bytes
Ungolfed, tienes tres funciones recursivas separadas:
P
determina sin
es primo;N
encuentra eln
th prime;p
Se ejecuta recursivamenteN
en1
n
tiempos de entrada .fuente
MATL , 6 bytes
Pruébalo en línea!
Explicación
fuente
R,
9893 bytes5 bytes gracias a @smci
Aquí hay una solución recursiva horriblemente ineficiente:
Prueba de salida:
fuente
a<-ifelse(m==0,j,f(m-1,j))
if
así antes ... ¡genial!Bash + utilidades comunes, 55
Como estamos haciendo primos recursivos, aquí hay una respuesta recursiva:
Dado que el recuento de niveles de recursión se basa en la
$SHLVL
variable incorporada, la respuesta puede estar desactivada si ya tiene unos pocos niveles de shell. Esta es probablemente la razón por la cual esta respuesta no funciona en TIO.Si eso no es bueno, entonces aquí hay una respuesta más convencional:
Bash + utilidades comunes, 58
Pruébalo en línea .
fuente
Haskell , 58 bytes
1 indexado
Pruébalo en línea!
Explicación:
Utiliza el mismo truco de acceso a la lista principal indexado en 0 que la respuesta de Adnan .
Esencialmente directo sigue la especificación de lo contrario.
fuente
05AB1E , 4 bytes
Pruébalo en línea!
Explicación
fuente
Maravilla , 23 bytes
1 indexado. Uso:
Explicación
fuente