На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Полученная таким образом запись является семеричной записью искомого числа \(R.\)
Например, для исходного числа \(123 = 234_7\) получаем \(P = 2 \cdot 3 \cdot 4 = 24 = 33_7\) и \(S = 2 + 4 = 6 = 6_7.\) Тогда результатом является число \(633_7 = 318.\)
Укажите наименьшее число \(N,\) при обработке которого результатом будет число \(2725.\)
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 7) + ans
n //= 7
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])}', 7)
# print(R(123))
for N in range(1, 10_001):
if R(N) == 2725:
print(N)
break
Ответ: \(3625\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене