Вступ
У цьому виклику ми матимемо справу з певним упорядкуванням натуральних чисел. Упорядкування відбувається так:
3, 5, 7, 9, 11, ...
2*3, 2*5, 2*7, 2*9, 2*11, ...
4*3, 4*5, 4*7, 4*9, 4*11, ...
8*3, 8*5, 8*7, 8*9, 8*11, ...
16*3, 16*5, 16*7, 16*9, 16*11, ...
...
... 64, 32, 16, 8, 4, 2, 1
Спочатку перераховуємо всі непарні цілі числа, що перевищують 1, у порядку зростання. Потім ми перераховуємо два рази непарні цілі числа, що перевищують 1, потім 4 рази, потім 8 разів і так далі: для всіх k ми перераховуємо 2 k рази непарних цілих чисел, більших за 1, у порядку зростання. Нарешті, ми перераховуємо повноваження двох у порядку зменшення , що закінчується на 1. Кожне додатне ціле число трапляється в цьому "списку" рівно один раз.
Більш чітко розглянемо два виразних натуральних числа A = n · 2 p і B = m · 2 q , де n, m ≥ 1 непарні, а p, q ≥ 0 . Тоді A виходить перед B в порядку впорядкування, якщо виконується одна з наступних умов:
- n> 1 , m> 1 і p <q
- 1 <n <m і p = q
- n> m = 1
- n = m = 1 і p> q
Це впорядкування фігурує в дивовижному математичному результаті, відомому як теорема Шарковського , що стосується періодичних точок динамічних систем. Я тут не буду вникати в деталі.
Завдання
Ваше завдання в цьому виклику - обчислити вищезазначене замовлення. Ваші входи - це два натуральних числа A і B , які можуть бути рівними. Вихідний результат - це триєдна цінність, якщо A приходить до B при впорядкуванні, а хибне значення - в іншому випадку. Якщо A = B , вихід повинен бути надійним. Ви можете приймати A і B в будь-якому порядку, якщо ви послідовні.
Вам не доведеться турбуватися про цілісне переповнення, але ваш алгоритм повинен теоретично працювати для довільно великих входів.
Тестові справи
Екземпляри правди
3 11
9 6
48 112
49 112
158 158
36 24
14 28
144 32
32 32
32 8
3 1
1 1
Фальшиві екземпляри
1 2
1 5
11 5
20 25
2 8
256 255
256 257
72 52
2176 1216
2176 2496
a&1|~b&1&f(a/2,b/2)
працювати?