Условие задачи.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
Шаг 1. Строится двоичная запись числа N.
Шаг 2. Далее эта запись обрабатывается по следующему правилу:
- если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
- если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R.
Шаг 3. Результат переводится в десятичную систему и выводится на экран. Например, для исходного числа 12 = 11002 результатом является число 11001002 = 100, а для исходного числа 4 = 1002 это число 100112 = 19.
Укажите минимальное число R, большее 151, которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение.
Запускаем PyCharm и начинаем писать код.
Первое сделаем двоичную запись введенного числа:
Далее добавляем условие: если делится на 3 то, дописываем, иначе дописываем другое:
Выполняем шаг 3. Переводим двоичное в десятичное:
Теперь нам нужно затолкать все это в цикл, чтобы перебрать варианты и добавить в результаты. Создадим список, в который будем собирать числа большие 151. Собираем все вместе:
Вот наш ответ:
Ответ: 163.
Жду ваших комментариев и лайков (жмем не жалеем).
Понравилась статья - подписывайся.
Мои курсы по информатике, математике и Python.
Курсы по технологиям: RabbitMQ, Redis, MongoDB и прочее.
Также приглашаю присоединится к моему сообществу в VK и каналу YouTube.