Tarea
Su tarea es imprimir o generar todos los números positivos en los que cada subcadena de varios dígitos en su representación decimal también es primo. Si el número tiene al menos 2 dígitos, esto implicaría que el número en sí también debe ser primo.
Ejemplo
6197
es en la secuencia porque cada subcadena de varios dígitos en6197
es primo, a saber:61
,19
,97
,619
,197
,6197
(sí).- Tenga en cuenta que
6
no es un primo, pero6197
todavía está en la secuencia porque6
no es una subcadena de varios dígitos de6197
. 8
también está en la secuencia porque cada subcadena de varios dígitos en8
es primo. No hay una subcadena de varios dígitos8
, por lo que este es un caso de verdad vacía .
Especificaciones
- Se aplican las lagunas estándar , excepto que se le permite codificar la salida o almacenar información relacionada con la salida en su programa.
- Los números en la salida pueden estar en cualquier orden .
- Los números en la salida pueden tener duplicados.
- Puede usar cualquier separador , si elige imprimir en lugar de imprimir.
- Se le permite prefijar y / o postfijar la salida si elige imprimir en lugar de la salida.
- El separador y el prefijo y el postfix no pueden contener ningún dígito (U + 0030 a U + 0039).
Lista completa (58 artículos)
1
2
3
4
5
6
7
8
9
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
113
131
137
173
179
197
311
313
317
373
379
419
431
479
613
617
619
673
719
797
971
1373
3137
3797
6131
6173
6197
9719
Referencia
- OEIS A131648 (lista incompleta)
Como siempre, siéntase libre de abordar en los comentarios cualquier cosa que deba aclarar.
Respuestas:
Brachylog , 18 bytes
Pruébalo en línea!
Entonces ... ¿estoy listo para la "recompensa" ? :RE
fuente
05AB1E ,
1513 bytesCódigo:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea! (puede tomar unos segundos)
fuente
Brachylog ,
1817151615 bytesPruébalo en línea!
-1 byte después de una discusión con Fatalize me inspiró a ver qué pasa si cambio el
l
y el<
alrededor.Este predicado genera la salida a través de la variable de entrada, siempre que la variable de salida se deje sin restricciones. Como se permiten duplicados, cada número se genera con una multiplicidad igual a 2 a la potencia del número de sus dígitos que son números primos.
Versiones anteriores:
fuente
8ḟ⟦₁{sᶠ{Ḋ|ṗ}ᵐ&}ˢ
Brachylog , 18 bytes
Otra solución de Brachylog. No pude hacerlo más corto que la solución Brachylog de Erik The Outgolfer; tiene exactamente la misma longitud, pero se acerca a la generación desde la dirección opuesta.
Parece que Unrelated String ha superado esto por muchos personajes, a quienes felicito.
Explicación:
Pruébalo en línea!
fuente
Jalea , 17 bytes
Mi primera respuesta Jelly! ¡Guardado 3 bytes gracias a @Leaky Nun !
Pruébalo en línea
Explicación:
fuente
RÇÐf
puede ser reemplazado conǀT
.ṖÐfḌÆP€
puede ser reemplazado conḌḟDÆP
.Java 8, 182 bytes
La respuesta C (gcc) del puerto de gastropner , ¡así que asegúrese de votar su respuesta!
Pruébalo en línea.
Explicación:
fuente
PowerShell v2 +,
107104bytesAdvertencia: un poco lento
Recorre de
11
a1e4
(es decir,10000
) y extrae números con elWhere-Object
selector (|?{...}
). La cláusula consta de dos componentes: los primeros bucles desde11
hasta el número actual y se utilizanWhere-Object
para extraer aquellos números que forman una subcadena del número actual (a través del-match
operador de expresiones regulares). Almacenamos esas subcadenas en$x
. La segunda parte se repite$x
y se usaWhere-Object
para extraer todos los números primos utilizando la expresión regular principal . Luego tomamos los.count
dos y la verificación es en realidad si son-eq
reales. Por ejemplo,971
tendrá$x = (71,97,971)
y cada uno de ellos son primos, por lo que3-eq3
es$TRUE
y , por lo tanto971
, será seleccionado.Ese resultado se concatena con un rango
1..10
. La matriz resultante se deja en la tubería y la salida es implícita, con una nueva línea entre los elementos por defecto.fuente
Japt , 15 bytes
Pruébalo
fuente
C (gcc) ,
144142140136134132 bytes-2 gracias a Kevin Cruijssen. -2 gracias a ceilingcat
... E inspirado por eso, podemos obtener otros 2 bytes del bucle for.
También desvergonzó descaradamente al mejor corrector de la respuesta de Kevin Cruijssen por otro -4.
Pruébalo en línea!
fuente
||n<10
puede ser|n<10
yfor(n=1;n<1e4;n++)
puede serfor(n=0;++n<1e4;)
para -2 bytes.Malbolge Unshackled (variante de rotación de 20 trits), 2,5254e7 bytes o 1,9809e7 bytes
El tamaño de esta respuesta excede el tamaño máximo de programa postable (eh), por lo que el código se encuentra en mi repositorio de GitHub (nota: no copie el código usando CTRL + A y CTRL + C, solo haga clic derecho y haga clic en "Guardar elemento de destino como. .. ").
¿Cómo ejecutar esto?
Esto podría ser una parte difícil, porque el ingenuo intérprete de Haskell tardará siglos en ejecutarlo. TIO tiene un intérprete decente Malbogle Unshackled, pero lamentablemente no podré usarlo (limitaciones).
La mejor que pude encontrar es la variante de ancho de rotación fija de 20 trits, que funciona muy bien.
Para hacer que el intérprete sea un poco más rápido, eliminé todas las comprobaciones del intérprete Malbolge Unshackled de Matthias Lutter.
Notas de rendimiento
La aplicación ejecutó unos 40 minutos en mi máquina, produciendo números HEX de la secuencia. Lo detuve alrededor de una hora de cálculos, y terminó en 0x11.
Tenga en cuenta que esta respuesta difiere de mi otra, porque esta realmente calcula los números, y se puede hacer para que los calcule indefinidamente.
La aplicación asigna el búfer de rotación, que tiene alrededor de 7 gigabytes de tamaño, así que prepara mejor tu RAM libre.
Variante alternativa
La variante alternativa usa alrededor de 2 gigabytes de memoria menos, pero produce la salida en forma de caracteres ASCII (0 = ASCII (0x0), 10 = nueva línea, etc.), y está disponible aquí . Sin embargo, no compite debido a los requisitos de desafío
fuente
Python 3 , 118 bytes
Pruébalo en línea!
Explicación
Advertencia: no hay cadenas reales involucradas en esta solución.
fuente
Rubí, 81 + 8 = 89 bytes
+8 bytes para
-rprime
.Véalo en repl.it: https://repl.it/CniR/2
fuente
Perl 6 ,
47 4443 bytesExplicación:
fuente
C #,
261249247 bytesGuardado 12 bytes gracias a Leaky Nun
Esto compila a a
Func<List<int>>
.La versión formateada se ve así:
fuente
false
otrue
, use0>1
y0<1
Swift 4 , 144 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript (Node.js) , 130 bytes
si yo puedo asumir pila infinita
i*i<=n&&
se puede quitar yi*i>n
vueltas ai>=n
lo que reduce el código de 9 bytes y tal vez convertir principal función recursiva a: https://tio.run/##LYpBDoIwEEX33AMyAxVbXUmccgX2xkWDRYeQaSPqyrvXkrj5ef/lze7j1vHJ8bWTcPMpTQRMWjm6XJFs0/DZ@EM/ASunBmCsKtfG9/rIiJ0rIoEoJpNbKXPdx@1jx5akGEiytqdNYp2nNFr / wR @ xHkD2Rn81dpLGIGtYfLuEO0yAmH4 (119 bytes)Pruébalo en línea!
fuente
Malbolge , 1361 bytes
Versión simple y aburrida. Muestra números del más alto.
Pruébalo en línea!
fuente
TI-83/84 BASIC, 124 Bytes
Recorre los primeros 10k enteros. Configura un contador en N para verificar cada primo de subcadena, e int (log (A recupera uno menos que el número de dígitos en el número actual. Luego colocamos ese número a un lado en una segunda variable para que podamos bajar P a través de cada longitud subcadena de al menos 2 dígitos. 10 ^ ... y AnsfPart (iPart (,,, genera la subcadena actual para verificar la primalidad, luego las siguientes 3 líneas hacen la verificación de primalidad a 1 o 0 en Ans. Si la subcadena no es primo , incrementamos N, y después de verificar todas las subcadenas si N sigue siendo 0, imprimimos el número actual.
¿Posiblemente se podrían hacer algunos ajustes para aumentar la eficiencia de la verificación de primalidades para esta prueba? ¡Me alegra haber encontrado un algoritmo en menos bytes que almacenar la salida directamente en el formato TI-83!
fuente
Python 3.8 (prelanzamiento) , 194 bytes
Pruébalo en línea!
fuente
PHP , 135 bytes
Pruébalo en línea!
fuente