Desde Euclides, hemos sabido que hay infinitos números primos. El argumento es por contradicción: si solo hay muchos, digamos , entonces seguramente no es divisible por ninguno de estos primos, por lo que su factorización prima debe producir un nuevo primo que no estaba en la lista. Entonces, la suposición de que solo existen primos finitos es falsa.
Ahora supongamos que es el único primo. El método de arriba produce como un nuevo (posible) primo. Aplicar el método nuevamente produce , y luego , luego , entonces ambos 13 y 139 son primos nuevos, etc. En el caso de que obtengamos un número compuesto, simplemente tomamos el primo menos nuevo. Esto da como resultado A000945 .
Reto
Dado un primer y un entero calcular el -ésimo término de la secuencia definida como sigue:
Estas secuencias se conocen como secuencias de Euclid-Mullin .
Ejemplos
Para :
1 2
2 3
3 7
4 43
5 13
6 53
7 5
8 6221671
9 38709183810571
Para ( A051308 ):
1 5
2 2
3 11
4 3
5 331
6 19
7 199
8 53
9 21888927391
Para ( A051330 )
1 97
2 2
3 3
4 11
5 19
6 7
7 461
8 719
9 5
(,0({q:)1+*/)^:
para 15 bytes, devolviendo la secuencia hastan
(indexado a cero)verb conj
producía un adverbio .^:
, y después de que se convierte en un verbo que se aplica a la arg derecha. Creo que eso es lo que está sucediendo gramaticalmente.Python 2 , 56 bytes
Pruébalo en línea!
Comentado
Pruébalo en línea!
fuente
int(input())
de otro modoi
es unstr
?input()
siempre devuelve cadenas. En Python 2input()
intenta evaluar la entrada. Estoy usando Python 2 en este caso porque el código resultante es un poco más corto. Para el código real , debe intentar usar Python 3, ya que es la versión más nueva y más compatible de Python.Jalea , 8 bytes
n=0
Pruébalo en línea!
¿Cómo?
fuente
05AB1E , 8 bytes
f
Explicación:
fuente
λλP>fW
λ£λP>fW
£
£
para el último elemento! ",.£
¿ Como ? ;) EDITAR: En realidad, no funciona exactamente como£
para las listas ... usando una lista como[1,2]
con.£
resultados en dos elementos sueltos con los últimos 1 y 2 elementos (es decir, se12345
convierte en[5,45]
lugar de[45,3]
o[3,45]
con12S.£
) ..λ.£
debería funcionar. Usé flag como una función adicional asociada conλ
(ver esta conversación con Adnan ). Básicamente, quiero un indicadorè
tal que, cuando se ejecuteλè...}
, genere el enésimo elemento en lugar de la secuencia infinita (al igualλ£
que funcionaría para generar los primeros n elementos).£
entorno recursivo. Sí, entonces deλ.£
hecho no va a funcionar, mi mal. Buen 6 byter independientemente. Ahora solo tiene que esperar la respuesta de @flawr si está permitido o no (probablemente lo esté).Japt ,
1211 bytesLuchó por hacer esto bien, por lo que puede haberse perdido algo que se puede jugar al golf.
Toma
n
como la primera entrada yp1
, como una matriz singleton, como la segunda. Devuelve los primerosn
términos. Cambieh
ag
para devolver eln
término indexado th 0 en su lugar.Intentalo
fuente
Retina , 56 bytes
Pruébalo en línea! Toma datos como el número de términos nuevos que se agregarán en la primera línea y los términos semilla en la segunda línea. Nota: Se vuelve muy lento ya que usa factorización unaria, por lo que necesita crear una cadena de la longitud relevante. Explicación:
Reemplace las comas en los términos semilla con
*
sy agregue a*
. Esto crea una expresión Retina para una cadena de longitud del producto de los valores.Repita el bucle el número de veces dado por la primera entrada.
Reemplace temporalmente el número en la primera línea con a
$
y anteponga a_
a la segunda línea, luego evalúe el resultado como un programa Retina, agregando así una cadena de_
s de longitud 1 más que el producto de los valores.Encuentre el factor no trivial más pequeño del número en decimal y agregue un
*
listo para el siguiente ciclo.Eliminar la entrada de iteración.
Eliminar el último
*
.Reemplace los
*
s restantes con,
s.fuente
JavaScript (Node.js) , 54 bytes
Pruébalo en línea!
Sin golf
fuente
bash + GNU coreutils, 89 bytes
TIO
fuente
Ruby 2.6, 51 bytes
(2..)
, el rango infinito a partir de 2, todavía no es compatible con TIO.Esta es una función recursiva que toma un valor inicial
s
(puede ser primo o compuesto), lo devuelve cuando n = 0 (editar: tenga en cuenta que esto significa que está indexado a cero), devuelve el menor númerol
que es mayor que 1 y se divide-(s+1)
cuando n = 1, y de lo contrario se repite cons=l*s
yn=n-1
.fuente
(2..)
con2.step
(solo 1 byte más) para permitir que funcione en TIO y todo estaba apagado por uno. Pruébalo en línea!APL (Dyalog Extended) , 15 bytes
Esta es una aplicación bastante sencilla del algoritmo que utiliza extendidas de factores primos muy votos orden interna,
⍭
. Pruébalo en línea!Explicación
fuente
Pari / GP , 47 bytes
Pruébalo en línea!
fuente
Stax , 9 bytes
Ejecutar y depurarlo
Toma y (indexado a cero) para la entrada. Produce .
p0
n
pn
fuente
C (gcc) ,
5453 bytesPruébalo en línea!
-1 byte gracias a ceilingcat
fuente
Perl 6 ,
3332 bytes-1 byte gracias a nwellnhof
Pruébalo en línea!
Bloque de código anónimo que toma un número y devuelve una lista perezosa.
Explicación:
fuente
-+^[*](@_)
Guarda un byte.Haskell , 49 bytes
Pruébalo en línea!
Devuelve la secuencia infinita como una lista perezosa.
Explicación:
fuente