Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-6376
- Просмотры: 452
- Изменено: 5 апреля 2025
*(А. Богданов) На вход алгоритма подаётся натуральное число \(N\) \((N \geqslant 10).\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится троичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если число \(N\) чётное, в конец дописываются два младших разряда полученной троичной записи;
- б) если число \(N\) нечётное, в конец дописывается троичное представление суммы цифр полученной троичной записи.
- Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для исходного числа \(10_{10} = 101_3\) результатом является число \(10101_3 = 91_{10},\) а для исходного числа \(11_{10} = 102_3\) результатом является число \(10210_3 = 102_{10}.\)
Укажите значение \(N,\) после обработки которого с помощью этого алгоритма получается минимальное число \(R.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 2 == 0 else conv(sum(int(x) for x in tr))
return int(tr, 3)
min_R = 10**100
ans = 0
for N in range(10, 100):
if R(N) < min_R:
min_R = R(N)
ans = N
print(ans)
Ответ: \(27\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


