Esta pregunta será un giro en la búsqueda del nnúmero primo th.
Reto
Debe escribir un programa que tomará una entrada ny generará el nnúmero primo th cuya representación decimal contiene la representación decimal de ncomo una subcadena.
¿Confuso? Aquí hay unos ejemplos.
n=1
Primes: 2, 3, 5, 7, 11
^1 first prime that contains a 1
Output: 11
n=2
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
^1 ^2 second prime that contains a 2
Output: 23
n=3
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
^1 ^2 ^3 third prime that contains a 3
Output: 23
n=10
Primes: 2, 3, 5, 7, 11, ..., 97, 101, 103, 107, 109, ..., 997, 1009, 1013, 1019, 1021, 1031, 1033
^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 tenth prime that contains a 10
Output: 1033
Este es el código golf , por lo que gana el conteo de bytes más bajo.
Si algo es confuso, por favor deje un comentario.

Hot Network Questionslista.Respuestas:
05AB1E , 8 bytes
Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
Pyth - 11 bytes
Test Suite .
fuente
Python 2,
676562 bytesPruébalo en Ideone .
Cómo funciona
Usamos un corolario del teorema de Wilson :
En todo momento, la variable p es igual al cuadrado del factorial de m - 1 .
Si k <n ,
k/nrendirá 0 y f se llama de forma recursiva. m se incrementa, p se actualiza y k se incrementa si y solo si m es un primo que contiene n .Este último se consigue añadiendo el resultado de
p%m*(`n`in`m`)a k . Según el corolario del teorema de Wilson, si m es primo,p%mdevuelve 1 , y si no, devuelve 0 .Una vez k alcances n , encontramos q , el n º primordial que contiene n .
Estamos en la próxima llamada durante la verificación, entonces m = q + 1 .
k/ndevolverá 1 , y los operadores bit a bit-~incrementarán ese número una vez por cada llamada de función. Dado que se requieren q - 1 llamadas a f para incrementar m de 2 a q + 1 , la llamada externa a f devolverá 1 + q - 1 = q , según lo previsto.fuente
Bash, 27 bytes
primesproviene de bsdgames.Toma la entrada como un argumento de línea de comando y sale en STDOUT.
fuente
Jalea , 13 bytes
Pruébalo en línea!
fuente
Mathematica, 75 bytes
Todavía puede ser golfable.
fuente
Java,
194180173171112 BytesCódigo:
Sin golf:
fuente
P {yString[] s. Y 2. actualmente solo está dando la salida10, pero el desafío del código de golf era tomar una entradany dar la salida adecuada en función de esa entrada. Además, puede encontrar esto interesante: consejos para jugar al golf en Java.Ruby,
6261 bytesRequiere la
-rprimebandera (+8 bytes).fuente
Julia,
6160 bytesPruébalo en línea!
fuente
MATL , 18 bytes
Pruébalo en línea!
Explicación
Esto genera números primos en orden usando un
do...whilebucle. Para cada cebado, se prueba la condición (y se consume el cebado). Si está satisfecho, esa prima se empuja a la pila nuevamente. El número de elementos en la pila se usa como recuento de cuántos primos calificados hemos encontrado. Cuando hay suficientes, se muestra el último.fuente
Pyke, 15 bytes
Pruébalo aquí!
fuente
Bash + GNU coreutils, 66 Bytes
A diferencia de la solución de @ Doorknob, esta solo necesita cosas que están instaladas en cada GNU / Linux:
fuente
seq 1e20|factor|grep -Po "(?<=: )\d*$2\d$"|sed $1q\;dfor((...)){, debe haber un espacio o una nueva línea, por lo que no importa. Antes del cierre}, debe haber una;o una nueva línea, por lo que tampoco importa.Perl 6 , 41 bytes
Explicación:
Prueba:
fuente
Java 8,
192183181171 bytes (programa completo)Pruébalo en línea.
Explicación:
Java 8, 105 bytes (función lambda)
Pruébalo en línea.
Igual que el anterior, pero con una
nentrada entera y sin el material de clase detallado.fuente
&&con&y quitar?de su expresión regular.&&y&por alguna razón ..Clojure, 118 bytes
Solo obtiene el enésimo elemento de la secuencia infinita perezosa de números que son primos y tienen
nen su representación de cadena.Puedes probarlo aquí: https://ideone.com/ioBJjt
fuente
En realidad, 16 bytes
Pruébalo en línea!
Explicación:
fuente
PowerShell v2 +,
10899 bytesOoof La falta de cualquier tipo de cálculo / verificación primo incorporado realmente duele aquí.
Toma entrada
$n, ingresa unfor()bucle infinito . Cada iteración, usamos unforbucle envuelto alrededor del comprobador de expresiones regulares de PowerShell regex (h / t para Martin) para convertirlo en un generador principal incrementando$icada vez a través del bucle. (Por ejemplo, ejecutar solofor(){for(;'1'*++$i-match'^(?!(..+)\1+$)..'){$i}}generará resultados2, 3, 5, 7...separados por nuevas líneas).Luego, una simple
-likeverificación para ver si$nestá en algún lugar$ie incrementar nuestro contador$o. Si hemos llegado a donde$ny$oson iguales, salida$iyexit. De lo contrario, continuamosforhasta encontrar el próximo primo y el proceso se repite.fuente
APL (NARS), 39 caracteres, 78 bytes
1π es el siguiente número primo ...; prueba:
pero eso ya a las 20 sale el espacio de la pila ... En cambio, esto a continuación parece estar bien, incluso si ha durado un poco más (61 caracteres)
fuente
Añadir ++ , 36 bytes
Pruébalo en línea!
Bastante ineficiente. Itera sobre cada enteroyo tal que i ≤ 25 x2 y filtra compuestos y primos que no contienen norte . Finalmente, tomamos elnorte El valor de los enteros restantes.
fuente
Japt
-h,151311 bytesIntentalo
fuente