Esta es la secuencia A054261 .
El ésimo número de contención prime es el número más bajo que contiene los primeros números primos como subcadenas. Por ejemplo, el número es el número más bajo que contiene los primeros 3 primos como subcadenas, lo que lo convierte en el tercer número de contención de primos.
Es trivial descubrir que los primeros cuatro números de contención primos son , , y , pero luego se vuelve más interesante. Como el próximo número primo es 11, el siguiente número de contención primo no es , pero es ya que se define como el número más pequeño con la propiedad.
Sin embargo, el verdadero desafío llega cuando vas más allá de 11. El siguiente número de contención principal es . Tenga en cuenta que en este número, las subcadenas y se superponen. El número también se superpone con el número .1113313
Es fácil demostrar que esta secuencia está aumentando, ya que el siguiente número debe cumplir con todos los criterios del número anterior y tener una subcadena más. Sin embargo, la secuencia no está aumentando estrictamente, como lo demuestran los resultados para n=10y n=11.
Entrada
Un solo entero n>0(supongo que también podría tenerlo indexado en 0, luego haciendo n>=0)
Salida
O el nnúmero de contención primo th, o una lista que contiene los primeros nnúmeros de contención primos.
Los números que he encontrado hasta ahora son:
1 => 2
2 => 23
3 => 235
4 => 2357
5 => 112357
6 => 113257
7 => 1131725
8 => 113171925
9 => 1131719235
10 => 113171923295
11 => 113171923295
12 => 1131719237295
Tenga en cuenta que n = 10y n = 11son el mismo número, ya que es el número más bajo que contiene todos los números , pero también contiene .
Dado que este es el código de golf marcado, ¡juegue al golf! Se permiten soluciones de fuerza bruta, pero su código tiene que funcionar para cualquier entrada en teoría (lo que significa que no puede concatenar los primeros n primos). ¡Feliz golf!

Poperador crea una asignación explícita para verificar los números primos en el número (en lugar de verificar si el número está en la matriz de números primos)? Esta es una solución hermosa, dudo que pueda hacer cualquier solución con menos comandos.Pes producto. Básicamente, multiplica todos los valores en una lista. ElÅpcreará una lista con la primerancantidad de primos, dondenestá la entradaIen este caso. Elåcomprobará para cada número en la lista de números primos si están en el número actual de la lista infinita, donde se dará1a Truthy y0para Falsey-. Entonces, el producto básicamente verifica si todos son verdaderos; si todos los números primos están dentro del número actual. Si alguno es 0, losPresultados también falsey. Pero si todo es así1, losPresultados son verdaderos y el.Δbucle se detiene.1µNIÅpåP. Para aquellos que no conocen 05AB1E, una explicación para la mía también:1µ- hasta que la variable del contador llegue a 1 (comienza en 0, aumenteNgradualmente en 1 y realice:NIÅpåP- compruebe si aparecen todos los primeros primos <input>Ny , si es así, incremente la variable del contador automáticamente. Devuelve el valor final de N.Xlugar de1, por razones), pero cambié a esto ya que nunca tuve la oportunidad de usarla∞:)Jalea , 11 bytes
Pruébalo en línea!
Fuerza bruta simple. No estoy completamente seguro de cómo
#funciona el arity, por lo que puede haber margen de mejora.Cómo funciona
fuente
wⱮẠ¥1#ÆN€Guarda dos bytes.Java 8, 143 bytes
Pruébalo en línea.
NOTAS
n=7.n=9debido al límite de tamaño deint(máximo de2,147,483,647).inta along, el máximo se incrementa a una salida por debajo9,223,372,036,854,775,807(¿sobren=20qué creo?)java.math.BigIntegerel máximo se puede aumentar a cualquier tamaño (en teoría), pero será de alrededor de +200 bytes al menos debido a la verbosidad dejava.math.BigIntegerlos métodos.Explicación:
fuente
JavaScript (ES6),
105 ... 9291 bytesPruébalo en línea!
¿Cómo?
Comentado
fuente
Ruby , 58 bytes
Pruébalo en línea!
Fuerza bruta, funciona hasta 7 en TIO.
fuente
Pyth , 14 bytes
Pruébalo en línea!
Pyth , 15 bytes
Ligeramente más rápido pero 1 byte más largo.
Pruébalo en línea!
fuente
Jalea , 14 bytes
Pruébalo en línea!
fuente
Carbón , 42 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Construya los primeros
nnúmeros primos por división de prueba de todos los enteros por todos los números primos encontrados previamente.Recorre todos los enteros hasta encontrar uno que contenga todos los números primos como subcadenas.
Transmita el resultado a una cadena e imprima implícitamente.
La velocidad del programa se puede duplicar a un costo de un byte reemplazando el último
≦⊕ηcon,≦⁺²ηpero aún es demasiado lento para calcularn>6.fuente
Perl 6 ,
6359 bytes-4 bytes gracias a nwellnhof
Pruébalo en línea!
Una solución de fuerza bruta que agota el tiempo en TIO para números superiores a 5, pero estoy bastante seguro de que funciona correctamente. Encuentra el primer número positivo que contiene los primeros
nnúmeros primos. Aquí hay una solución que no se agotan=6.Explicación:
fuente
Python 2 , 131 bytes
Pruébalo en línea!
fEs la función.fuente
Python 2 , 91 bytes
Pruébalo en línea!
fuente
SAS, 149 bytes
La entrada se ingresa después de la
cards;declaración, así:Da salida a un conjunto de datos
p, con el resultadov, con una fila de salida para cada valor de entrada. Técnicamente debería funcionar para todos los casos de prueba dados (el número entero máximo con precisión total en SAS es 9,007,199,254,740,992), pero me di por vencido después de dejarlo pensar durante 5 minutos en n = 8.Explicación:
fuente
Haskell , 102 bytes
Pruébalo en línea!
Explicación / Ungolfed
Como ya hemos
Data.Listimportado, también podríamos usarlo: en lugar de lo viejotake n[p|p<-[2..],all((>0).mod p)[2..p-1]], podemos usar otra forma de generar todos los números primos que necesitamos. Es decir, generamos una cantidad suficiente de compuestos y los utilizamos junto con(\\):Usarπ( n ) < n2Iniciar sesión( n2) . El resto es solo una simple lista de comprensión:
n*nbasta porquefuente
Japt,
2018 bytesLejos de mi mejor trabajo, estaba feliz de hacerlo funcionar después del día que tuve. ¡Estoy seguro de que terminaré golpeándolo en el alcohol más tarde!
Pruébelo : tarda 13 segundos en ejecutarse para una entrada de
7, arroja un tambaleante después de eso (la versión actualizada es una mierda5para mí, pero ese podría ser mi teléfono).fuente
F.h()solo y parece estar roto; ETH debe haber cambiado algo.