Zainspirowany to pytanie Math.SE .
tło
Fibonacciego (zwany F
) sekwencję rozpoczynając 0, 1
taki sposób, że każdy numer ( F(n)
) (po pierwszych dwóch) jest sumą dwóch przed nim ( F(n) = F(n-1) + F(n-2)
).
Sekwencja Fibonacciego mod K (nazywana M
) jest sekwencją liczb Fibonacciego mod K ( M(n) = F(n) % K
).
Można wykazać, że F Sekwencja Fibonacciego mod K jest cykliczna dla wszystkich K, ponieważ każda wartość jest określona przez poprzednią parę, i istnieje tylko K 2 możliwych par liczb całkowitych nieujemnych, obie mniejsze niż K. Ponieważ sekwencja Fibonacciego mod K jest cykliczny po pierwszej powtórzonej parze terminów, liczba, która nie pojawia się w modie F Sekwencji Fibonacciego, zanim pierwsza powtarzająca się para terminów nigdy się nie pojawi.
Dla K = 4
0 1 1 2 3 1 0 1 ...
Dla K = 8
0 1 1 2 3 5 0 5 5 2 7 1 0 1 ...
Zauważ, że dla K = 8, 4 i 6 nie pojawiają się przed powtórzeniem 0 1
, więc 4 i 6 nigdy nie pojawią się w Fibonacciego Modie 8.
Wyzwanie
Biorąc pod uwagę liczbę całkowitą K ściśle większą niż 0, wypisz wszystkie nieujemne liczby całkowite mniejsze niż K, które nie pojawiają się w modie Sekwencji Fibonacciego K.
Zasady
Możesz założyć, że K zmieści się w twoim rodzimym typie liczb całkowitych ( w granicach rozsądku ).
Jeśli istnieją liczby nieujemne mniejsze niż K, które nie pojawiają się w F Sekwencji Fibonacciego mod K, twój program / funkcja powinna wypisać wszystkie takie liczby w jakikolwiek rozsądny sposób.
Jeśli nie ma nieujemnych liczb całkowitych mniejszych niż K, które nie pojawiają się w modie Sekwencji Fibonacciego K, twój program / funkcja może to wskazać, zwracając pustą listę, nic nie drukując, powodując błąd itp.
Porządek nie ma znaczenia.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w każdym języku.
Przypadki testowe
Generuj przypadki testowe online!
Niepuste skrzynki testowe
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]
...
Puste przypadki testowe (brak danych wyjściowych, błąd, pusta lista itp. Jest akceptowalnym wynikiem)
1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 20, 25, 27, 30, 35 ... 100 ...