Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам:
1. Перемножаются первая и вторая, а также третья и четвёртая цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).
Пример. Исходное число: 2466. Произведения: 2 · 4 = 8; 6 · 6 = 36. Результат: 368.
Укажите наименьшее число, в результате обработки которого автомат выдаст число 124.
На первом этапе работы автомата получились
Таким образом, для одной пары цифр получаем такие варианты:
Для минимизации числа выгодно взять набор с единицей. Таким образом, первые две цифры
Итого получаем число 1426.
Примечание.
Заметим, что произведения цифр записаны в порядке убывания. Следовательно, число 124 может быть представлено только
Ответ: 1426.
Приведём другое решение на языке Python.
for i in range(1000, 10000):
s = str(i)
k1 = int(s[0]) * int(s[1])
k2 = int(s[2]) * int(s[3])
first = str(max(k1, k2))
second = str((min(k1, k2)))
s1 = first + second
if s1 == '124':
print(i)
break
Приведём решение Сергея Донец на PascalABC.NET:
uses School;
begin
var tt := 124;
for var i :=1000 to 9999 do begin
var (a,b,c,d) := i.Digits;
var (s1, s2) := (a * b, c * d);
var res := s1>s2 ? s1.ToString+s2 : s2.ToString+s1;
if res.ToInteger = tt then begin
Print(i);
break;
end;
end;
end.

