Introducción
La secuencia EKG comienza con 1 y 2, luego la regla es que el siguiente término es el entero positivo más pequeño que aún no está en la secuencia y cuyo factor común con el último término es mayor que 1 (no son coprimos).
Los primeros términos son:
1, 2, 4, 6, 3, 9, 12, 8, 10, 5, 15, ...
Se llama EKG porque la gráfica de sus términos es bastante similar a un EKG.
Es la secuencia A064413 en el OEIS .
Desafío
Debe escribir una función que tome un número entero n como entrada y produzca cuántos de los n primeros términos de la secuencia son mayores que n .
Como la regla de la secuencia comienza con el tercer término, el entero de entrada debe ser mayor o igual a 3. Por ejemplo, dada la entrada, 10
la salida se 1
debe a que el séptimo término es 12
y ninguno de los otros diez primeros términos excede 10.
Casos de prueba
3 -> 1
10 -> 1
100 -> 9
1000 -> 70
Reglas
- Para enteros inferiores a 3, la función puede generar 0 o un código de error.
- No hay otras reglas particulares, excepto: es el código de golf, ¡cuanto más corto, mejor!
1
siendo el término 0 de la secuencia y, por lo tanto, haciendo, por ejemplo,15
el décimo término, en lugar de5
?Respuestas:
Jalea ,
201918 bytesEste es un programa completo.
Pruébalo en línea!
Cómo funciona
Tenga en cuenta que la secuencia generada es[1,0,2,4,6,3,9,12,8,10,5,15,…] . Dado que llamar al enlace auxiliar n veces genera una secuencia de longitud n+1 , prácticamente se ignora el 0 .
fuente
Perl 6 ,
66635958 bytes-4 bytes gracias a Jo King
Pruébalo en línea!
Demasiado lento en TIO para n = 1000.
fuente
first &f,1..*
se puede reescribir+(1...&f)
, su truco de unión ayudó después de todo.JavaScript (ES6),
107106105 bytesPruébalo en línea!
¿Cómo?
a.indexOf(k)
es igual a:a.indexOf(k) + C(k, a[0])
fuente
Haskell,
8982 bytesEditar: -7 bytes gracias a @ H.PWiz
Pruébalo en línea!
fuente
Casco , 16 bytes
Pruébalo en línea!
Explicación
fuente
MATL , 29 bytes
Pruébalo en línea!
Explicación:
fuente
GE:
)?while
APL (Dyalog Unicode) , SBCS de 39 bytes
-2 bytes gracias a ngn, -1 byte utilizando la verificación condicional adecuada.
Pruébalo en línea!
fuente
⍣
pasa su propio argumento izquierdo a la función operando, por lo que no es necesario∘
. Además,⍵
no se unirá con la cosa de la derecha, ya que comienza con una función (⍳
), por lo que no es necesario⊢
.JavaScript,
939187 bytesLanza un error de desbordamiento para
0
o1
, salidas0
para2
.Pruébalo en línea
fuente
APL (NARS), caracteres 121, bytes 242
prueba en menos de un minuto aquí en tiempo de ejecución:
Natural, no hay verificación de tipo y rango ...
fuente
Japt,
2321 bytesIntentalo
fuente
Python 3 , 153 bytes
Pruébalo en línea! (Advertencia: toma ~ 30 segundos para evaluar)
fuente