Задание 5. Информатика. ЕГЭ. Поляков-7407
- Просмотры: 1138
- Изменено: 25 ноября 2024
(Е. Джобс) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится запись числа \(N\) в троичной системе счисления.
- Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) четное, то слева дописывается \(2\), а справа — удвоенное значение младшего разряда в троичной системе счисления;
б) если число \(N\) нечетное, то справа дописывается \(2\), а слева — удвоенное значение старшего разряда в троичной системе счисления.
Полученная таким образом запись является троичной записью искомого числа \(R\).
Например, для исходного числа \(14 = 112_3\) результатом является \(211211_3 = 616\). Укажите минимальное значение большее \(100\), которое может получиться в результате работы алгоритма.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 2 == 0:
tmp = '2' + tr + conv(int(tr[-1]) * 2)
else:
tmp = conv(int(tr[0]) * 2) + tr + '2'
return int(tmp, base=3)
a = [R(N) for N in range(1, 100) if R(N) > 100]
print(min(a))
Ответ: \(131\)