Fabuła:
Lucy zapytała George'a, jaki jest jego szczęśliwy numer. Po krótkiej kontemplacji George odpowiedział, że ma kilka szczęśliwych liczb. Po krótkim zamieszaniu Lucy zapytała George'a, jakie są jego pierwsze nSzczęśliwe Liczby. George poprosił cię, jego kumpel, o napisanie mu programu do wykonania pracy za niego.
Wyzwanie:
Napisz program / funkcję, która otrzyma od standardowego argumentu wejścia / funkcji ciąg lub liczbę całkowitą n. Program / funkcja zwróci / wyśle pierwsze n szczęśliwe liczby . Szczęśliwe liczby są definiowane przez sito w następujący sposób.
Zacznij od dodatnich liczb całkowitych:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, ...
Teraz usuwaj co drugi numer:
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, ...
Drugi pozostały numer to 3 , więc usuwaj co trzeci numer:
1, 3, 7, 9, 13, 15, 19, 21, 25, ...
Kolejny pozostały numer to 7 , więc usuwaj co siódmy numer:
1, 3, 7, 9, 13, 15, 21, 25, ...
Następnie usuń co dziewiąty numer i tak dalej. Wynikowa sekwencja to szczęśliwe liczby.
Zwycięski:
Jak zwykle dla codegolf, wygrywa najmniej bajtów.
Jak zwykle zgłoszenia korzystające ze standardowych luk są dyskwalifikowane.