W Base-10 wszystkie idealne kwadraty kończą się cyframi 0 , 1 , 4 , 5 , 6 lub 9 .
W Base-16 wszystkie idealne kwadraty kończą się cyframi 0 , 1 , 4 lub 9 .
Nilknarf opisuje, dlaczego tak jest i jak to bardzo dobrze rozwiązać w tej odpowiedzi, ale dam również krótki opis tutaj:
Kwadratowa liczba Base-10, N , cyfra „jedynki” nie ma wpływu na to, co jest w cyfrze „dziesiątki” lub cyfra „setki” i tak dalej. Tylko cyfra „jedynki” w N wpływa na cyfrę „jedynki” w N 2 , więc łatwym (ale może nie najbardziej golfowym) sposobem znalezienia wszystkich możliwych ostatnich cyfr dla N 2 jest znalezienie n 2 mod 10 dla wszystkich 0 <= n < 10 . Każdy wynik jest możliwą ostatnią cyfrą. Dla Base-m można znaleźć n 2 mod m dla wszystkich 0 <= n < m .
Napisz program, który otrzyma wejście N , wypisuje wszystkie możliwe ostatnie cyfry idealnego kwadratu w Base-N (bez duplikatów). Możesz założyć, że N jest większe od 0 i że N jest wystarczająco małe, aby N 2 się nie przelał (jeśli możesz przetestować aż do N 2 , dam ci skończoną liczbę punktów brownie, ale wiedz, że kurs wymiany punktów brownie na punkty rzeczywiste wynosi nieskończoność do jednego).
Testy:
Input -> Output
1 -> 0
2 -> 0,1
10 -> 0,1,5,6,4,9
16 -> 0,1,4,9
31 -> 0,1,2,4,5,7,8,9,10,14,16,18,19,20,25,28
120 -> 0,1,4,9,16,24,25,36,40,49,60,64,76,81,84,96,100,105
to jest golf golfowy , więc obowiązują standardowe zasady!
(Jeśli uznasz to za zbyt łatwe lub chcesz uzyskać bardziej dogłębne pytanie na ten temat, rozważ to pytanie: Minimalne pokrycie zasad dla kwadratowego badania pozostałości kwadratowości ).