Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Zabawa z bitami
(zabawa-bitami)
Limit pamięci: 64 MB
Limit czasu: 0.50 s

Jasio jest wielkim entuzjastą matematyki. Jak każdy szanujący się matematyk, ma on swoją ulubioną liczbę całkowitą dodatnią N. W wolnych chwilach często zapisuje ją na kartce pod różnymi postaciami aby podziwiać jej majestat. Najwspanialszą postacją liczby jest oczywiście jej zapis w systemie binarnym. Ulubioną czynnością Jasia jest zmienianie kolejności cyfr w zapisie binarnym liczby N, rodząc w ten sposób nowe, nigdy wcześniej niezbadane liczby.

Ponad wszystko Jasio ceni sobie piękno kwadratów liczb całkowitych. Ilekroć otrzymana w procesie przestawiania bitów liczba okazuje się być kwadratem, Jasia ogarnia nieziemska rozkosz. Chciałby on ustalić, ile spośród możliwych do uzyskania liczb należy do cudownej rodziny kwadratów. Kunszt matematyczny Jasia oczywiście nie pozwala mu podczas przestawiania bitów na stworzenie liczby z zerami wiodącymi. Przykładowo, dla N = 69 = 10001012 może on uzyskać 10100012 = 92 oraz 11001002 = 102, ale nie 01100012 = 72.

Napisz program, który wczyta liczbę N i wypisze, ile różnych kwadratów liczb całkowitych można otrzymać poprzez zamianę kolejności cyfr w jej zapisie binarnym.

Wejście

W pierwszym i jedynym wierszu wejścia znajduje się liczba całkowita N.

Wyjście

Twój program powinien wypisać jeden wiersz zawierający jedną liczbę całkowitą – ile różnych kwadratów liczb całkowitych można otrzymać poprzez zamianę kolejności cyfr w zapisie binarnym liczby N.

Ograniczenia

1 ≤ N ≤ 1018.

Przykład

Wejście Wyjście Wyjaśnienie
9
1

Jedynym możliwym do uzyskania kwadratem jest sama liczba N = 32.

Wejście Wyjście Wyjaśnienie
69
2

Przykład opisany powyżej.

Wejście Wyjście Wyjaśnienie
1337
2

N = 101001110012. Możliwymi do uzyskania kwadratami są 101010110012 = 372 oraz 110111001002 = 422.