На вход алгоритма подается натуральное число \(N,\) не превышающее \(10000.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Полученная таким образом запись является девятеричной записью искомого числа \(R.\)
Например, для исходного числа \(123 = 146_9\) получаем \(P = 1 \cdot 4 \cdot 6 = 24 = 26_9\) и \(S = 1 + 4 + 6 = 11 = 12_9.\) Тогда результатом является число \(1226_9 = 915.\)
Укажите наибольшее число \(N,\) при обработке которого результатом будет число \(12537.\)
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 9) + ans
n //= 9
return ans
def R(N):
nn = conv(N)
pr = 1
for c in nn:
pr *= int(c) if c != '0' else 1
sum_ = sum(int(c) for c in nn)
nums = sorted([pr, sum_])
return int(f'{conv(nums[0])}{conv(nums[1])}', 9)
for N in range(10_000, 0, -1):
if R(N) == 12537:
print(N)
break
Ответ: \(9969\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене