Inspiré par cette question Math.SE .
Contexte
La séquence de Fibonacci (appelée F
) est la séquence, commençant de 0, 1
telle sorte que chaque nombre ( F(n)
) (après les deux premiers) est la somme des deux avant ( F(n) = F(n-1) + F(n-2)
).
Une séquence de Fibonacci mod K (appelée M
) est la séquence des nombres de Fibonacci mod K ( M(n) = F(n) % K
).
On peut montrer que la séquence de Fibonacci mod K est cyclique pour tout K, car chaque valeur est déterminée par la paire précédente, et il n'y a que K 2 paires possibles d'entiers non négatifs tous deux inférieurs à K. Parce que la séquence de Fibonacci mod K est cyclique après sa première paire de termes répétée, un nombre qui n'apparaît pas dans le mod K de la séquence de Fibonacci avant que la première paire de termes répétée n'apparaisse jamais.
Pour K = 4
0 1 1 2 3 1 0 1 ...
Pour K = 8
0 1 1 2 3 5 0 5 5 2 7 1 0 1 ...
Notez que pour K = 8, 4 et 6 n'apparaissent pas avant la répétition 0 1
, donc 4 et 6 n'apparaîtront jamais dans le mod 8 de la séquence de Fibonacci.
Défi
Étant donné un entier K strictement supérieur à 0, sortez tous les entiers non négatifs inférieurs à K qui n'apparaissent pas dans le mod K. de séquence de Fibonacci.
Règles
Vous pouvez supposer que K s'adaptera à votre type d'entier natif ( dans des limites raisonnables ).
S'il y a des nombres non négatifs inférieurs à K qui n'apparaissent pas dans le mod K de séquence de Fibonacci, votre programme / fonction devrait sortir tous ces nombres de manière raisonnable.
S'il n'y a pas d'entiers non négatifs inférieurs à K qui n'apparaissent pas dans le mod K de séquence de Fibonacci, votre programme / fonction peut l'indiquer en renvoyant une liste vide, en n'imprimant rien, en produisant une erreur, etc.
L'ordre n'a pas d'importance.
C'est le golf de code , donc la réponse la plus courte dans chaque langue l'emporte.
Cas de test
Générez des cas de test en ligne!
Cas de test non vides
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]
...
Cas de test vides (aucune sortie, erreur, liste vide, etc. est une sortie acceptable)
1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 20, 25, 27, 30, 35 ... 100 ...