Задание 5. Информатика. ЕГЭ. Шастин. 4.10.2024
- Просмотры: 404
- Изменено: 24 ноября 2024
(Д. Бахтиев) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится троичная запись числа \(N\).
- Далее эта запись обрабатывается по следующему правилу:
- если сумма цифр троичной записи числа чётная, то к этой записи слева дописывается \(1\), а справа \(2\);
- если сумма цифр троичной записи числа нечётная, то к этой записи слева дописывается \(2\), а справа \(0\);
- Полученная таким образом запись является троичной записью искомого числа \(R\).
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4 = 11_3\) результатом является число \(1112_3 = 41\).
Укажите минимальное число \(R\), большее \(100\), которое могло получиться в результате работы данного алгоритма.
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
s = ''
while n:
s = str(n % 3) + s
n //= 3
return s
def R(N):
tr = conv(N)
if sum(int(x) for x in tr) % 2 == 0:
ans = '1' + tr + '2'
else:
ans = '2' + tr + '0'
return int(ans, 3)
arr = [R(x) for x in range(5, 50) if R(x) > 100]
print(min(arr))
Ответ: \(113\)