Задание 5. Информатика. ЕГЭ. Поляков-6886
- Просмотры: 175
- Изменено: 20 февраля 2025
(Н. Сафронов) Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
- Строится троичная запись числа \(N.\)
- К этой записи дописываются разряды по следующему правилу. Если сумма троичных разрядов кратна \(3,\) слева дописывается \(20,\) иначе слева дописывается \(10.\)
- Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(10\) троичная запись \(101_3\) преобразуется в запись \(10101_3 = 91,\) для числа \(11\) троичная запись \(102_3\) преобразуется в \(20102_3 = 173.\)
Укажите максимальное значение \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее чем \(100.\)
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 3) + ans
N //= 3
return ans
def R(N):
tr = conv(N)
if sum(int(x) for x in tr) % 3 == 0:
tr = '20' + tr
else:
tr = '10' + tr
return int(tr, 3)
for N in range(100, 0, -1):
if R(N) < 100:
print(N)
break
Ответ: \(18\)