Untitled

№ 4317 Пробный 06.2022 /dev/inf advanced (Уровень: Сложный)

Автомат обрабатывает натуральное число *N* по следующему алгоритму:

  1. Строится пятеричная запись числа *N*.

  2. К полученной записи дописываются разряды. Если последняя цифра в пятеричной записи четная, справа дописывается 2, если нечетная – слева дописывается 2 и справа 3.

  3. Результат переводится в десятичную систему и выводится на экран.

В результате работы автомата на экране появилось число, меньшее 1000. Для какого наибольшего значения *N* данная ситуация возможна?

Untitled

Комментарии к первому варианту решения задачи:

  1. for n in range(1, 1000): - Используем цикл for для перебора всех значений от 1 до 999, присваивая каждое значение переменной n.
  2. M = [] - Создаем пустой список M.
  3. x = n - Копируем значение переменной n в переменную x.
  4. while x > 0: - Запускаем цикл while, который будет выполняться, пока значение переменной x больше 0.
  5. M.append(x % 5) - Добавляем остаток от деления значения переменной x на 5 в конец списка M.
  6. x //= 5 - Делаем целочисленное деление значения переменной x на 5 и присваиваем результат переменной x.
  7. M.reverse() - Разворачиваем список M в обратном порядке.
  8. if M[-1] % 2 == 0: - Проверяем, является ли последний элемент списка M четным числом.