По даному номеру визначте, чи це складне число.
Складене число - це таке число, що якщо взяти його двійкове представлення і "скласти" його навпіл, тобто взяти результат множення XNOR першої половини числа, а друга половина разом з ним цифрами зворотно, ви отримаєте нуль.
Якщо число має непарне число цифр у двійковій формі, його середня цифра повинна бути 1 і ігнорується при складанні.
Оскільки це може бути трохи заплутано, я наведу кілька прикладів:
178
Двійкове представлення 178 є
10110010
Щоб скласти це, спочатку розділимо його навпіл
1011 0010
Перевертаємо другу половину
1011
0100
І ми XNOR дві половини:
0000
Це нуль, тому це складне число.
1644 рік
Двійкове представлення 1644 р. Є
11001101100
Щоб скласти це, спочатку розділимо його навпіл
11001 1 01100
Середній шматочок - 1, тому ми його викидаємо.
11001 01100
Перевертаємо другу половину
11001
00110
І ми XNOR дві половини:
00000
Це нуль, тому це складне число.
4254
Двійкове представлення 4254 є
1000010011110
Щоб скласти це, спочатку розділимо його навпіл
100001 0 011110
Середній біт 0, тому це не складне число.
Завдання
Ваше завдання - взяти позитивну кількість і повернути тритугу, якщо число складене і хибне, якщо його немає. Це гольф з кодом, тому постарайтеся зменшити кількість байтів.
Випробування
Ось перші 99 складаних номерів:
[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
, так що ні. (Можливо, варто мати третій приклад, який працює, як цей.) Те саме стосується 18.