Змагання
Для цього завдання ви повинні визначити, чи є вказане число в наборі Кантора. Отже, спочатку давайте визначимо набір Кантора.
Спочатку почніть з цифр від 0 до 1. Будь-які цифри поза цим діапазоном не містяться у наборі Кантора. Тепер поділимо числа на три рівні частини: [0,1 / 3], [1 / 3,2 / 3], [2/3, 1]. Будь-які числа, що не знаходяться у діапазоні першої та останньої частин, не містяться у наборі Кантора. Тепер ви повторите цей процес для сегментів [0,1 / 3] та [2/3, 1]. Потім ви повторите те, що залишається. Ви продовжуєте робити це назавжди. Зрештою, усі цифри, що залишилися, знаходяться у наборі Кантора. Ось схема перших шести ітерацій:
Вхідні дані
Два цілих числа x
і y
.
0 < y < 2^15
0 <= x <= y
Найбільший спільний знаменник x
і y
дорівнює 1, якщо тільки немає x == 0
.
Вихідні дані
Truthy якщо x/y
в комплекті Кантора.
Фальсі, якщо x/y
його немає в наборі Кантора.
Приклади
Тепер давайте подивимось кілька прикладів чисел, які знаходяться в наборі Кантора.
1/3 -> true
Він знаходиться на межі, і межі ніколи не знімаються.
1/4 -> true
1/4
ніколи не знаходиться в середній третині відрізка, хоча і ніколи не знаходиться на межі. Якщо ви будете слідувати його шляху, ви дійсно виявите, що він чергується між першою та останньою третинами розділу.
1/13 -> true
1/13
чергує перший, перший та останній розділи.
1/5 -> false
1/5
потрапляє в перший порожній блок третього ряду на наведеній вище діаграмі, між 1/9 та 2/9.
Інші тестові випадки:
0/4 -> true
3/10 -> true
3/4 -> true
10/13 -> true
1/1 -> true
12/19 -> false
5/17 -> false
3/5 -> false
1/7 -> false
1/2 -> false
Ви можете спробувати інші номери з цим фрагментом:
Об'єктивна
Перемагає людина з найменшими байтами.
x == 0