Liczby Fermata są dodatnimi liczbami całkowitymi, które można wyrazić jako 2 2 x +1 za pomocą liczby całkowitej x.
Zdefiniujmy teraz atrybut liczby o nazwie „Fermat-ness”:
- Płodność liczby jest o jeden mniejsza niż długość łańcucha potęg dwóch, zaczynając od podstawy, z potęgami dwóch rozszerzonymi, aby zmaksymalizować płodność.
- Liczba, która nie jest liczbą Fermata, ma wartość Fermata równą zero.
Tak więc 17 (= 2 2 2 2 0 +1) ma Fermata trzy.
Wyzwanie
Biorąc pod uwagę dodatnią niezerową liczbę całkowitą jako dane wejściowe, wypisz Fermat-ness liczby.
Zasady
- Możesz wziąć dane wejściowe w postaci binarnej, dziesiętnej, szesnastkowej, jako bignum lub w dowolnym innym formacie, który pozwala ci najlepiej grać w golfa
- Twoje rozwiązanie musi być w stanie przetwarzać liczby o długościach bitów powyżej 64, niezależnie od tego, jakiej reprezentacji używasz.
- Tylko nieujemne liczby całkowite.
- Standardowe luki są oczywiście zabronione.
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź.
Przypadki testowe
Są w formacie input->output
. Dane wejściowe są w systemie szesnastkowym, aby zaoszczędzić miejsce.
10000000000000000000000000000000000000000000000000000000000000001 -> 2
1000000000000BC00000000000000000000000000000000001000000000000001 ->0
1234567890ABCDEF -> 0
100000000000000000000000000000001 -> 1
5 -> 2
11 -> 3
10001 -> 4
101 -> 1
To samo w systemie dziesiętnym:
115792089237316195423570985008687907853269984665640564039457584007913129639937 -> 2
115792089237316497527923305698859709742143344804209838213621568094470773145601 -> 0
1311768467294899695 -> 0
340282366920938463463374607431768211457 -> 1
5 ->2
17 -> 3
65537 -> 4
257 -> 1
Dzięki geokavel za bezcenne dane wejściowe w piaskownicy.