Просмотр задания
Укажите наименьшее из таких чисел Х, при вводе которого алгоритм печатает сначала 1, а потом 60.

var x, M, L: integer;
begin
readln(x);
M :=1; L:=0;
while x > 0 do
begin
M := M*(x mod 10);
if x mod 10 > 3 then
L : L + 1;
x := x div 10;
End
writeln(L); write(M);
end.
16 февраля 2016
Ответы (1)
Информатик БУ # 16 февраля 2016 в 20:00 0
Каждый повтор цикла m умножается на последний разряд числа. Значит m - произведение разрядов. L увеличивается на 1 в том случае, если последний разряд числа больше 3.

Получается, что нужно подобрать наименьшее число, произведение разрядов которого равно 60, и при этом в нем только один разряд больше 3.
Число не может быть двузначным, т.к. мы не можем получить 60 умножением двух цифр.
Число не может быть трёхзначным, т.к. два разряда должны будут быть <= 3, 2*2=4, 2*3=6, 3*3=9, ни одно из этих произведений не даст 60 при умножении на третий разряд, каким бы он ни был.
Число может быть как минимум четырёхзначным.
2*2*3*5 = 60, ответ 2235
Перевести число из в Результат: 510 = 1012