Задание 5. Информатика. ЕГЭ. Статград. 28.01.2025-1
- Просмотры: 2029
- Изменено: 2 февраля 2025
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
- Строится троичная запись числа \(N.\)
- В полученной записи все нули заменяются на двойки, все двойки — на нули. Из полученного числа удаляются ведущие нули.
- Результат переводится в десятичную систему счисления.
- Результатом работы алгоритма становится модуль разности исходного числа \(N\) и числа, полученного на предыдущем шаге.
Пример. Дано число \(N = 35.\) Алгоритм работает следующим образом.
- Строим троичную запись числа \(N\): \(35_{10} = 1022_3.\)
- Заменяем цифры и удаляем ведущие нули: \(1022 \to 1200.\)
- Переводим в десятичную систему: \(1200_3 = 45_{10}.\)
- Вычисляем модуль разности: \(| 35 - 45 | = 10.\)
Результат работы алгоритма \(R = 10.\)
При каком наименьшем \(N\) в результате работы алгоритма получится \(R = 1~864~246?\)
Решение:
Python
def conv(n):
s = ''
while n:
s = str(n % 3) + s
n //= 3
return s
def R(N):
tr = conv(N)
tr = tr.replace('0', '9')
tr = tr.replace('2', '0')
tr = tr.replace('9', '2')
return abs(N - int(tr, 3))
for N in range(10, 10_000_000):
if R(N) == 1_864_246:
print(N)
break
Ответ: \(3~323~607\)