Bestimmen Sie anhand einer gegebenen Zahl, ob es sich um eine Falznummer handelt.
Eine Falzzahl ist eine Zahl, bei der Sie, wenn Sie sie als Binärdarstellung betrachten und in zwei Hälften "falten", das Ergebnis einer XNOR-Multiplikation der ersten Hälfte der Zahl und der zweiten Hälfte mit umgekehrten Ziffern erhalten Null.
Wenn die Zahl eine ungerade Anzahl von Ziffern im Binärformat hat, muss die mittlere Ziffer 1 sein und wird beim Falten ignoriert.
Da dies etwas verwirrend sein könnte, möchte ich einige Beispiele nennen:
178
Die binäre Darstellung von 178 ist
10110010
Um dies zu falten, teilen wir es zuerst in zwei Hälften
1011 0010
Wir kehren die zweite Hälfte um
1011
0100
Und wir XNOR die beiden Hälften:
0000
Dies ist Null, das ist also eine Faltzahl.
1644
Die binäre Darstellung von 1644 ist
11001101100
Um dies zu falten, teilen wir es zuerst in zwei Hälften
11001 1 01100
Das mittlere Bit ist 1, also werfen wir es raus.
11001 01100
Wir kehren die zweite Hälfte um
11001
00110
Und wir XNOR die beiden Hälften:
00000
Dies ist Null, das ist also eine Faltzahl.
4254
Die binäre Darstellung von 4254 ist
1000010011110
Um dies zu falten, teilen wir es zuerst in zwei Hälften
100001 0 011110
Das mittlere Bit ist 0, dies ist also keine Falzzahl.
Aufgabe
Ihre Aufgabe ist es, eine positive Zahl aufzunehmen und eine Wahrheit zurückzugeben, wenn die Zahl richtig und falsch ist, wenn sie nicht richtig ist. Dies ist Codegolf, also versuchen Sie, den Byte-Countdown niedrig zu halten.
Testfälle
Hier sind die ersten 99 Klappnummern:
[1, 2, 6, 10, 12, 22, 28, 38, 42, 52, 56, 78, 90, 108, 120, 142, 150, 170, 178, 204, 212, 232, 240, 286, 310, 346, 370, 412, 436, 472, 496, 542, 558, 598, 614, 666, 682, 722, 738, 796, 812, 852, 868, 920, 936, 976, 992, 1086, 1134, 1206, 1254, 1338, 1386, 1458, 1506, 1596, 1644, 1716, 1764, 1848, 1896, 1968, 2016, 2110, 2142, 2222, 2254, 2358, 2390, 2470, 2502, 2618, 2650, 2730, 2762, 2866, 2898, 2978, 3010, 3132, 3164, 3244, 3276, 3380, 3412, 3492, 3524, 3640, 3672, 3752, 3784, 3888, 3920, 4000, 4032, 4222, 4318, 4462, 4558]
0
, also nein. (Es könnte sich jedoch lohnen, ein drittes Beispiel wie dieses zu haben.) Gleiches gilt für 18.