Автомат получает на вход натуральное число N, не превышающее 10 000. По этому числу строится новое число R по следующим правилам.
1. Вычисляется число P — произведение всех ненулевых цифр числа N.
2. Вычисляется число M — сумма максимальной и минимальной цифр в записи числа N.
3. Вычисляется T1: T1 = P + M.
4. Вычисляется T2: T2 = P × M.
Новое число R получается в результате записи рядом без пробелов чисел T1 и T2 таким образом, чтобы они следовали слева направо в неубывающем порядке.
Пример. Исходное число N = 234
P = 2 × 3 × 4 = 24
M = 2 + 4 = 6
T1 = 24 + 6 = 30
T2 = 24 × 6 = 144
Результат: R = 30144
Укажите наибольшее число N, при обработке которого автомат выдаст число R = 23126.
Приведём решение на языке Python.
for n in range(10000, 1, -1):
t = list(str(n))
tno0 = [int(i) for i in t if i != '0']
t0 = [int(i) for i in t]
p = 1
for i in tno0:
p *= i
m = int(max(t0)) + int(min(t0))
t1 = p + m
t2 = p * m
r = str(min(t1,t2))+str(max(t1,t2))
if r == '23126':
print(n)
break
Ответ: 72.
Приведём решение Юрия Красильникова на языке Python.
def f(n):
s=str(n)
mind,maxd,p=10,0,1
for c in s:
k=int(c)
mind=min(mind,k)
maxd=max(maxd,k)
if k!=0: p*=k
m=maxd+mind
t1=p+m
t2=p*m
return int(str(t1)+str(t2))
for n in range(100000,0,-1):
if f(n)==23126:
print(n)
break

