Inspirado por esta pregunta Math.SE .
Antecedentes
La secuencia de Fibonacci (llamada F
) es la secuencia, comenzando de 0, 1
tal manera que cada número (F(n)
) (después de los dos primeros) es la suma de los dos anteriores ( F(n) = F(n-1) + F(n-2)
).
Una secuencia de Fibonacci mod K (llamada M
) es la secuencia de los números de Fibonacci mod K ( M(n) = F(n) % K
).
Se puede demostrar que la secuencia de Fibonacci mod K es cíclica para todo K, ya que cada valor está determinado por el par anterior, y solo hay K 2 posibles pares de enteros no negativos, ambos menos que K. Debido a que la secuencia de Fibonacci mod K es cíclico después de su primer par de términos repetidos, un número que no aparece en la secuencia de Fibonacci mod K antes de que nunca aparezca el primer par de términos repetidos.
Para K = 4
0 1 1 2 3 1 0 1 ...
Para K = 8
0 1 1 2 3 5 0 5 5 2 7 1 0 1 ...
Tenga en cuenta que para K = 8, 4 y 6 no aparecen antes de la repetición 0 1
, por lo que 4 y 6 nunca aparecerán en la secuencia 8 de Fibonacci mod.
Desafío
Dado un entero K estrictamente mayor que 0, genera todos los enteros no negativos menores que K que no aparecen en la secuencia de Fibonacci mod K.
Reglas
Puede suponer que K encajará en su tipo entero nativo ( dentro de lo razonable ).
Si hay números no negativos menores que K que no aparecen en la secuencia de Fibonacci mod K, su programa / función debería generar todos esos números de manera razonable.
Si no hay enteros no negativos menores que K que no aparecen en la secuencia de Fibonacci mod K, su programa / función puede indicar esto devolviendo una lista vacía, sin imprimir nada, produciendo un error, etc.
El orden no importa.
Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
Casos de prueba
¡Genere casos de prueba en línea!
Casos de prueba no vacíos
8 [4, 6]
11 [4, 6, 7, 9]
12 [6]
13 [4, 6, 7, 9]
16 [4, 6, 10, 12, 14]
17 [6, 7, 10, 11]
18 [4, 6, 7, 9, 11, 12, 14]
19 [4, 6, 7, 9, 10, 12, 14]
21 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19]
22 [4, 6, 7, 9, 15, 17, 18, 20]
23 [4, 7, 16, 19]
24 [4, 6, 9, 11, 12, 14, 15, 18, 19, 20, 22]
26 [4, 6, 7, 9, 17, 19, 20, 22]
28 [10, 12, 14, 16, 18, 19, 23]
29 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27]
31 [4, 6, 9, 12, 14, 15, 17, 18, 19, 22, 25, 29]
32 [4, 6, 10, 12, 14, 18, 20, 22, 26, 28, 30]
33 [4, 6, 7, 9, 15, 17, 18, 20, 24, 26, 27, 28, 29, 31]
34 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 30]
36 [4, 6, 7, 9, 10, 11, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32]
37 [9, 10, 14, 17, 20, 23, 27, 28]
38 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 36]
39 [4, 6, 7, 9, 15, 17, 19, 20, 22, 24, 30, 32, 33, 35]
...
200 [4, 6, 12, 14, 20, 22, 28, 30, 36, 38, 44, 46, 52, 54, 60, 62, 68, 70, 76, 78, 84, 86, 92, 94, 100, 102, 108, 110, 116, 118, 124, 126, 132, 134, 140, 142, 148, 150, 156, 158, 164, 166, 172, 174, 180, 182, 188, 190, 196, 198]
...
300 [6, 18, 30, 42, 54, 66, 78, 90, 102, 114, 126, 138, 150, 162, 174, 186, 198, 210, 222, 234, 246, 258, 270, 282, 294]
...
400 [4, 6, 10, 12, 14, 20, 22, 26, 28, 30, 36, 38, 42, 44, 46, 52, 54, 58, 60, 62, 68, 70, 74, 76, 78, 84, 86, 90, 92, 94, 100, 102, 106, 108, 110, 116, 118, 122, 124, 126, 132, 134, 138, 140, 142, 148, 150, 154, 156, 158, 164, 166, 170, 172, 174, 180, 182, 186, 188, 190, 196, 198, 202, 204, 206, 212, 214, 218, 220, 222, 228, 230, 234, 236, 238, 244, 246, 250, 252, 254, 260, 262, 266, 268, 270, 276, 278, 282, 284, 286, 292, 294, 298, 300, 302, 308, 310, 314, 316, 318, 324, 326, 330, 332, 334, 340, 342, 346, 348, 350, 356, 358, 362, 364, 366, 372, 374, 378, 380, 382, 388, 390, 394, 396, 398]
...
Casos de prueba vacíos (sin salida, error, lista vacía, etc., es un resultado aceptable)
1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 20, 25, 27, 30, 35 ... 100 ...