Bei einer Ganzzahl müssen Sie die minimale Anzahl von Bits finden, die in N invertiert werden müssen , um sie in eine quadratische Zahl umzuwandeln . Sie dürfen nur Bits unter dem höchstwertigen invertieren .
Beispiele
- bereits eine quadratische Zahl ( 2 2 ), daher ist die erwartete Ausgabe 0 .
- kann durch Invertieren von 1 Bit in eine quadratische Zahl umgewandelt werden: 11000 → 1100 1 ( 25 = 5 2 ), sodass die erwartete Ausgabe 1 ist .
- kann nicht durch Invertieren eines einzelnen Bits in eine quadratische Zahl umgewandelt werden (die möglichen Ergebnisse sind 23 , 20 , 18 und 30 ), sondern durch Invertieren von 2 Bits: 10110 → 10 0 0 0 ( 16 = 4 2 ) , also die erwartete Ausgabe ist 2 .
Regeln
- Es ist in Ordnung, wenn Ihr Code zu langsam ist oder einen Fehler für die größeren Testfälle ausgibt, aber er sollte mindestens in weniger als 1 Minute unterstützen.
- Das ist Code-Golf !
Testfälle
Input | Output
----------+--------
4 | 0
22 | 2
24 | 1
30 | 3
94 | 4
831 | 5
832 | 1
1055 | 4
6495 | 6
9999 | 4
40063 | 6
247614 | 7 (smallest N for which the answer is 7)
1049310 | 7 (clear them all!)
7361278 | 8 (smallest N for which the answer is 8)
100048606 | 8 (a bigger "8")
Oder im kopier- / einfügefreundlichen Format:
[4,22,24,30,94,831,832,1055,6495,9999,40063,247614,1049310,7361278,100048606]
100048606
bei TIO nicht ausgeführt. Ist das ein Problem?