Fermat-Zahlen sind positive ganze Zahlen, die mit einer ganzen Zahl x als 2 2 x +1 ausgedrückt werden können .
Definieren wir nun ein Attribut einer Zahl namens "Fermat-ness":
- Die Fermat-ness der Zahl ist eins weniger als die Länge der Kette von Zweierpotenzen, ausgehend von der Basis, wobei Zweierpotenzen erweitert werden, um die Fermat-ness zu maximieren.
- Eine Zahl, die keine Fermat-Zahl ist, hat die Fermat-Ness von Null.
17 (= 2 2 2 2 0 +1) hat also Fermat-ness drei.
Herausforderung
Bei einer positiven Ganzzahl ungleich Null als Eingabe wird die Fermat-ness der Zahl ausgegeben.
Regeln
- Sie können die Eingabe in Binär, Dezimal, Hexadezimal, als Bignum oder in einem beliebigen Format verwenden, mit dem Sie am besten Golf spielen können
- Ihre Lösung muss in der Lage sein, Zahlen mit Bitlängen über 64 zu verarbeiten, je nachdem, welche Darstellung Sie verwenden.
- Nur nichtnegative ganzzahlige Potenzen.
- Standardlücken sind natürlich verboten.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort.
Testfälle
Diese sind im Format input->output
. Die Eingabe erfolgt aus Platzgründen hexadezimal.
10000000000000000000000000000000000000000000000000000000000000001 -> 2
1000000000000BC00000000000000000000000000000000001000000000000001 ->0
1234567890ABCDEF -> 0
100000000000000000000000000000001 -> 1
5 -> 2
11 -> 3
10001 -> 4
101 -> 1
Das Gleiche in Dezimalzahl:
115792089237316195423570985008687907853269984665640564039457584007913129639937 -> 2
115792089237316497527923305698859709742143344804209838213621568094470773145601 -> 0
1311768467294899695 -> 0
340282366920938463463374607431768211457 -> 1
5 ->2
17 -> 3
65537 -> 4
257 -> 1
Dank Geokavel für unschätzbare Beiträge im Sandkasten.