Ми визначаємо функцію g як g (n) = n XOR (n * 2) для будь-якого цілого числа n> 0 .
З огляду на x> 0 , знайдіть найменше ціле число y> 0 таке, що g k (y) = x для деякого k> 0 .
Приклад
x = 549
549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110)
483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010)
Що означає, що g 2 (161) = 549 . Ми не можемо йти далі, оскільки немає n такого, що g (n) = 161 . Отже, очікуваний вихід при x = 549 - y = 161 .
Правила
- Ви не повинні підтримувати недійсні записи. Гарантоване існування пари (y, k) для вхідного значення x .
- Це код-гольф , тому найкоротша відповідь у байтах виграє!
Тестові кейси
3 --> 1
5 --> 1
6 --> 2
9 --> 7
10 --> 2
23 --> 13
85 --> 1
549 --> 161
960 --> 64
1023 --> 341
1155 --> 213
1542 --> 2
9999 --> 2819
57308 --> 19124
57311 --> 223
983055 --> 1
a(n) = g(n)