Rzeczy, które warto wiedzieć:
Po pierwsze, szczęśliwe liczby.
Szczęśliwe liczby są generowane w następujący sposób:
Weź wszystkie liczby naturalne:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
Następnie usuń co drugi numer.
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
Teraz 3jest bezpieczny.
Usuń co trzeci numer:
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
Teraz 7jest bezpieczny.
Usuń co 7 liczbę.
Kontynuuj i usuwaj każdy nnumer, gdzie njest pierwszy bezpieczny numer po eliminacji.
Ostateczna lista bezpiecznych liczb to szczęśliwe liczby.
Pechowe liczby składają się z osobnych list liczb, które są [U1, U2, U3... Un].
U1 to pierwszy zestaw liczb usunięty ze szczęśliwych „kandydatów”, więc są to:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2 jest usunięty drugi zestaw liczb:
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
I tak dalej itd. ( U3Jest trzecią listą, U4czwartą itd.)
Wyzwanie:
Twoim zadaniem jest, po otrzymaniu dwóch danych wejściowych mi nwygenerowanie mth liczby na liście Un.
Przykładowe dane wejściowe i wyjściowe:
(5, 2) -> 29
(10, 1) -> 20
Okular:
- Twój program musi działać
mdo1e6, annawet do100.- Masz gwarancję, że zarówno
minsą dodatnimi liczbami całkowitymi. - Jeśli jesteś ciekawy,
U(1e6, 100)=5,333,213,163. (Dziękuję @pacholik!)
- Masz gwarancję, że zarówno
- Twój program musi to obliczyć w ciągu 1 dnia na rozsądnym nowoczesnym komputerze.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
PS: Byłoby miło, gdyby ktoś wymyślił ogólną formułę ich generowania. Jeśli masz formułę, podaj ją w swojej odpowiedzi!
(1e6,1e6)?
n=1przypadku? Ponieważ jest to wyjątkowe - dla wszystkich innych przypadków, indeks następnej szczęśliwej liczby oparty na 0 n-1.