Esta es una pregunta bastante común. Definiré una secuencia y usted jugará un código para generar una entrada dado un índice.
El primer elemento de la secuencia es 2.
El enésimo elemento de la secuencia es el entero positivo más pequeño que no sea n y 1 que comparte al menos un factor con n (que no sea 1) que aún no ha aparecido en la lista.
Casos de prueba
Aquí están los primeros 25 elementos de la secuencia:
1 2
2 4
3 6
4 8
5 10
6 3
7 14
8 12
9 15
10 5
11 22
12 9
13 26
14 7
15 18
16 20
17 34
18 16
19 38
20 24
21 27
22 11
23 46
24 21
25 30
code-golf
number
sequence
permutations
Ad Hoc Garf Hunter
fuente
fuente
Python 3 ,
118117bytes-1 byte gracias a Cameron Aavik !
Pruébalo en línea!
El código es bastante ineficiente (fuerza bruta un valor que no existe en los resultados anteriores y calcula los resultados anteriores nuevamente en cada valor nuevo), por lo que funciona correctamente, pero no recomendaría ejecutarlo en grandes cantidades.
fuente
def f(n,i=3):
y quitando lai=3
líneaHaskell ,
6059 bytesEDITAR:
all(/=x)
era más corto quex`notElem`
.f
toma un entero y devuelve un entero.Pruébalo en línea!
Este es un tiempo muy exponencial, por lo que TIO agota el tiempo de espera después de 21, mientras que mi GHCi interpretado llegó a 22 antes de detenerlo en este momento. La siguiente versión de 9 bytes más larga que se memoriza en una lista sube fácilmente a miles:
Pruébalo en línea!
f n
utiliza una lista de comprensión para generar candidatosx
, tomando el primer paso con!!0
.gcd x n>1
comprueba esox
yn
tiene factores comunes.||n<2
exenton==1
del requisito de factor.all(/=x)$n:map f[1..n-1]
comprueba quex
no esn
ni un elemento de secuencia precedente.fuente
all(/=x)$
es 1 más corto allíNo incorporado para GCD en C #, así que ...
C # (.NET Core) ,
197 196194 bytesPruébalo en línea!
Una vez más, abstenerse de usar este código para calcular los números en la secuencia para
n>30
...while
bucle GCD por unfor
bucle.fuente
a>0&b>0
se puede jugar al golfa*b>0
APL (Dyalog) , 46 bytes
Pruébalo en línea!
fuente