Задание 5. Информатика. ЕГЭ. Поляков-6887
- Просмотры: 121
- Изменено: 20 февраля 2025
(Н. Сафронов) Алгоритм получает на вход натуральное число \(N > 10\) и строит по нему новое число \(R\) следующим образом:
- Строится троичная запись числа \(N.\)
- К этой записи дописываются разряды по следующему правилу. Если количество четных цифр в полученной записи больше чем нечетных, слева дописывается \(22,\) иначе \(11.\)
- Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(18\) троичная запись \(200_3\) преобразуется в запись \(22200_3 = 234,\) для числа \(22\) троичная запись \(211_3\) преобразуется в \(11211_3 = 130.\)
Укажите минимальное значение \(R,\) больше чем \(100,\) которое может получится в результате работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 3) + ans
N //= 3
return ans
def R(N):
tn = conv(N)
if tn.count('1') < len(tn) - tn.count('1'):
tn = '22' + tn
else:
tn = '11' + tn
return int(tn, 3)
print(min(R(N) for N in range(11, 100) if R(N) > 100))
Ответ: \(120\)