Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
1. Перемножаются отдельно первая и вторая цифры, а также вторая и третья цифры.
2. Полученные два числа записываются друг за другом в порядке невозрастания без разделителей.
Пример. Исходное число: 179. Произведения: 1 · 7 = 7; 7 · 9 = 63. Результат: 637. Укажите наименьшее число, при обработке которого автомат выдаёт
Мы получаем, что произведение x1 · x2 = 20, а другое произведение x2 · x3
20 = 4 · 5 и никак иначе.
5 = 1 · 5 и никак иначе.
Значит, подходит
Ответ:154.
Приведём другое решение на языке Python.
for i in range(100, 1000):
s = str(i)
k1 = int(s[0]) * int(s[1])
k2 = int(s[1]) * int(s[2])
first = str(max(k1, k2))
second = str(min(k1, k2))
s1 = first + second
if s1 == '205':
print(i)
break
Приведем решение Михаила Глинского на языке Паскаль.
var x,a,b,c,a1,b1:integer;
begin
for a:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do begin
a1:=a*b; b1:=b*c;
if (a1=20) and (b1=5) or (b1=20) and (a1=5) then
writeln(a,b,c);
end;
end.
Первое (наименьшее) число, выведенное программой,
Приведём решение Сергея Донец на PascalABC.NET:
uses School;
begin
var tt := 205;
for var i := 100 to 999 do begin
var (a, b, c) := i.Digits; // сотни, десятки, единицы
var (s1, s2) := (a * b, b * c);
var res := s1>s2 ? s1.ToString+s2 : s2.ToString+s1;
if res.ToInteger = tt then begin
Print(i);
break;
end;
end;
end.

