На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для исходного числа \(35 = 1022_3\) получаем \(P = 1 \cdot 2 \cdot 2 = 4 = 11_3\) и \(S = 2 - 0 = 2 = 2_3.\) Тогда результатом является число \(211_3 = 22.\)
Укажите наименьшее число \(N,\) при обработке которого результатом будет число \(113.\)
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
nn = list(conv(N))
pr = 1
for c in nn:
pr *= int(c) if c != '0' else 1
sum_ = int(max(nn)) - int(min(nn))
nums = sorted([pr, sum_])
return int(f'{conv(nums[0])}{conv(nums[1])}', 3)
# print(R(35))
for N in range(1, 10_001):
if R(N) == 113:
print(N)
break
Ответ: \(485\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене