Introducción
Poner todos los números positivos en su orden regular (1, 2, 3, ...) es un poco aburrido, ¿no? Así que aquí hay una serie de desafíos en torno a las permutaciones (reorganizaciones) de todos los números positivos.
El primer desafío en esta serie es generar un (n) para un n dado como entrada, donde a (n) es A064413 , también conocida como la secuencia EKG porque la gráfica de sus valores se asemeja a un electrocardiograma (de ahí el " ¿Cómo funciona esto?" sentir " referencia). Las propiedades interesantes de esta secuencia son que todos los enteros positivos aparecen exactamente una vez. Otra característica notable es que todos los números primos ocurren en orden creciente.
Tarea
Dada una entrada entera n, salida a (n).
se define como:
- para , es el número más pequeño que aún no se utiliza y que comparte un factor con
Nota: aquí se supone una indexación basada en 1; puede usar indexación basada en 0, entonces , etc. Mencione esto en su respuesta si elige usar esto.
Casos de prueba
Input | Output
--------------
1 | 1
5 | 3
20 | 11
50 | 49
123 | 132
1234 | 1296
3000 | 3122
9999 | 10374
Reglas
- La entrada y la salida son enteros (su programa al menos debe admitir entradas y salidas en el rango de 1 hasta 32767)
- La entrada no válida (flotantes, cadenas, valores negativos, etc.) puede generar salidas imprevistas, errores o un comportamiento (no) definido.
- Se aplican las reglas de E / S predeterminadas .
- Las lagunas predeterminadas están prohibidas.
- Este es el código de golf , por lo que gana la respuesta más corta en bytes
#>¹↑¡§ḟȯ←⌋→`-Nḣ2
y aquí!¡§ḟȯ←⌋→`-Nḣ2
haría ( Pruébalo ). La definición de "duplicado" no es "es exactamente la misma que". Dejaré que otros decidan ya que no quiero forzar esto a cerrar, ya que es posible que me haya perdido algo.a(n)
acciones de un factor distinto a 1 cona(n-1)
, ya que cada número de acciones 1 como un factor. Además, ¿mi respuesta puede ser 'indexada en 2', dondea(2)
es 1,a(3)
es 2, y así sucesivamente?Respuestas:
05AB1E , 25 bytes
0 indexado
Pruébelo en línea o envíe los primeros elementosn .
Explicación:
fuente
Haskell ,
66 6564 bytesPruébalo en línea!
fuente
Haskell , 60 bytes
Pruébalo en línea!
Indexado a cero; podría guardar cuatro bytes si la serie comenzara con 2 (indexado un poco (-1), pero sin definir el valor para -1). Construye la lista infinita manteniendo perezosamente la lista de números no utilizados.
fuente
Data.List
y usa endelete x
lugar defilter(/=x)
. Si esto necesita funcionar para grandes argumentos, dicha optimización se hará rápidamente necesaria.delete
es lo más razonable que se puede hacer aquí, pero en code-golf no nos importa. A veces menciono variantes más eficientes, cuando la diferencia es espectacular o interesante. Aquí, no es tan malo: TIO puede calcular todos los casos de prueba en menos de 10 segundos.Python 2 , 104 bytes
Esto usa indexación basada en 0.
Pruébalo en línea!
fuente
Ruby, 86 bytes
Sin embargo, esto se ejecuta para siempre para entradas tan bajas como 10.
Aquí hay una versión con memoria con 102 bytes que se ejecuta en un tiempo aceptable:
fuente
IDIOMA DE LA MÁQUINA (X86, 32 bits) + biblioteca de lenguaje C funciones malloc () / free (), bytes 325
Arriba de gcd y la función ... Este código de ensamblaje debajo genera las funciones y el programa de prueba:
Los resultados:
Es posible errores y copia incorrecta pasado ...
fuente
Perl 6,
848073695049 bytes(0 indexado)
Gracias a esta respuesta por algunos trucos.
Gracias a ASCII-only por afeitar un byte.
fuente
...
? Hace que cosas de secuencia como esta sean mucho más fáciles. Por ejemplo, tumy@a=1,2;push @a,operation while condition
puedes ser1,2,{operation}...condition
. Con algunos otros campos de golf, esto puede ser tan bajo como 49 bytes.first
.APL (NARS), caracteres 119, bytes 238
esta prueba lleva 1m: 49s aquí:
fuente
Java (JDK) ,
161155152151 bytes¡Salvó un byte cambiando el
int[]
seguimiento para aprovechar lo existenteBigInteger
!Pruébalo en línea!
fuente
Gaia , 27 bytes
Pruébalo en línea!
Indexación basada en 1.
Corre bastante lento, ya que prueba cada número entero hasta que encuentra
a(n)
.fuente