Otra secuencia, otro desafío. *
Definición
Un primo pestá en esta secuencia, llamémoslo A, si por cada dígito den pla expansión decimal de, reemplaza dcon dcopias de dy el entero resultante sigue siendo primo; los ceros no están permitidos.
Por ejemplo, 11es trivial en esta secuencia (es el primer número, por cierto). El siguiente en la secuencia es 31, porque 3331también es primo; entonces 53porque 55555333también es primo, y así sucesivamente.
Desafío
Dada una entrada n, devuelve A(n), es decir, el nelemento th en esta secuencia.
Ejemplos
Aquí están los primeros 20 términos para comenzar. Este es A057628 en OEIS.
11, 31, 53, 131, 149, 223, 283, 311, 313, 331, 397, 463, 641, 691, 937, 941, 1439, 1511, 1741, 1871
Esto significa A(0) = 11, A(1) = 31etc., cuando se usa la indexación cero.
Reglas
- Puede elegir indexación basada en cero o en una; especifique en su respuesta cuál.
- En lugar de devolver solo el
nelemento th, puede optar por devolver los primerosntérminos. - Puede suponer que la entrada / salida no será mayor que el formato entero nativo de su idioma; sin embargo, el primer dígito repetido puede ser mayor que el formato nativo de su idioma, por lo que será necesario tenerlo en cuenta.
- Por ejemplo,
1871el último número de ejemplos tiene un primo correspondiente de18888888877777771, que es bastante más grande que el INT32 estándar. - Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- La salida puede ser a la consola, devuelta desde una función, mostrada en una ventana emergente de alerta, etc.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
* Para ser justos, se me ocurrieron los primeros términos de la secuencia jugando con algunos números, y luego fui a OEIS para obtener el resto de la secuencia.
fuente

169sí mismo no es primo, lo es13 * 13.Respuestas:
Casco , 15 bytes
Pruébalo en línea!
Erik el Outgolfer salvó un byte. Usar en
ṗlugar deεpguardaría otro byte, pero eso hace que el programa sea tan lento que incluso iguala para n = 2.fuente
ṗen el intérprete, es una locura cómo es más lento que encontrar todos los factores primos ...05AB1E ,
1413 bytes-1 byte gracias a Emigna !
Pruébalo en línea!
Explicación
fuente
Jalea ,
1814 bytesPruébalo en línea!
Sr. Xcoder: -1 Byte (lógico todo)
Erik the Outgolfer: -2 Bytes (una línea en lugar de dos)
HyperNeutrino: -1 Byte (devuelve los primeros n elementos de secuencia)
Explicación
Editar: originalmente envió una respuesta que incluía números con 0 en su representación decimal, lo que específicamente no está permitido.
fuente
Wolfram Language (Mathematica) , 100 bytes
Pruébalo en línea!
Jonathan Frech ahorró 3 bytes
y -7 bytes de JungHwan Min
-15 bytes de Martin Ender
También gracias a Jenny Mathy
fuente
Alice ,
7270666256 bytesGracias a Leo por guardar 5 bytes.
Pruébalo en línea!
Utiliza una entrada basada en 1.
Explicación
El truco más aseado golf aquí (aunque sólo ahorra un par de bytes) es que estoy usando un test de primalidad que da
0de compuesto n paranpara no compuesto n . De esa manera, no tenemos que usar el resultado directamente en un condicional, pero podemos pasarlo directamente a la siguiente parte que verifica que la entrada no contenga ceros.fuente
Python 2 , 130 bytes
Pruébalo en línea!
Python 2 ,
195179167140138136135134 bytesxrangelugar derange, evitando así aMemoryErrory compactando la función principal; mejorando el conteo de índices enteros.|para guardar bytesor.~-lugar de0**invertir la existencia de un cero enj,&seguido de un valor booleano verdadero, se aísla la propiedad booleana de este valor.~-A&B&C(equivalente a(not A) and B and C) conA, B, Cser booleanosA<B==C.Pruébalo en línea! (1 indexado)
Explicación
Define una función principal
fque toma un índice enterony, por defecto, un valor establecidoj, la secuencia actual canditate (iniciada9para mejorar el rendimiento manteniendo el tamaño del programa) y una función de comprobación principal.Mientras
nno sea cero, lanentrada de la secuencia -ésima aún no se encuentra. Porjlo tanto, se incrementa ynse disminuye en uno si fjes un número que satisface las propiedades requeridas.Cuando finaliza el bucle,
jes lanentrada de la secuencia -th y, por lo tanto, se imprime.fuente
Pyth , 21 bytes
Pruébalo aquí!
Más bien largo, ya que Pyth no tiene una expansión decimal incorporada.
.f), que:.AKjZT) y (&) ...*VK`Z), unidos y convertidos en un entero (ss) son primos (P_) y (&) ...P_).fuente
esegún una nueva enmienda de la regla.Perl 6 , 51 bytes
Pruébalo en línea!
grep {...}, 2..*filtra la secuencia infinita de números naturales a partir de 2 utilizando la función de predicado entre llaves.(...)[$_]indexa en esta lista filtrada utilizando el argumento de la función$_.!/0/filtra los números que contienen un dígito cero.S:g/./{$/ x $/}/replica cada dígito en la expansión decimal del número de prueba.is-prime $_ & S:g/./{$/ x $/}/llama a lais-primefunción incorporada con una unión y de$_, el número de prueba y el número resultante de replicar sus dígitos. La función devolverá verdadero si ambos miembros de la unión y son primos.fuente
J, 81 bytes
Esta es una de esas situaciones para las que aún no he encontrado una buena solución J.
Sin embargo, publico esto con la esperanza de aprender algo nuevo.
fnos dice si un número dado es un "primer dígito repetido". Se descompone de la siguiente manera:Y, finalmente, el principal Do ... Mientras que el verbo, con su molesto, aparentemente inevitable repetitivo, que surge del hecho de que necesitamos usar una lista para almacenar nuestro progreso, que requiere registros "actuales" y "encontrados hasta ahora" , ya que nuestro argumento izquierdo ya está siendo usado para almacenar la condición de parada, es decir,
n. Esto significa que debemos usar muchos bytes preciosos para la simple tarea de especificar args ([y]) y desempaquetar nuestra lista de 2 elementos ({.y{:):Pruébalo en línea!
fuente
fcon la función auxiliar envuelta entre paréntesis? Además, intenté jugar golf con la función de ayuda y se me ocurrió1 p:('x',~"."0#])&.":, que desafortunadamente no excluye con éxito los números primos con '0' en ellos. ¿Que piensas? También tiene que tener la'x',~parte para obtener una precisión adicional ...(((0>.-)((*&(1&p:)0&e.|10#.#~),.&.":))([,(+*)~)])/^:_@,&2, el uso10xde expandir la gama de lo contrario n = 15 se saltará 937