Напишите программу, которая по введённому натуральному числу N (N≤500) выдаёт наименьшее число M, произведение цифр которого (в десятичной записи) равно N или 0, если такого M не существует. (Pascal)
var N, i, j, product: Integer; digit, minNumber: Integer; flag: Boolean;
begin Write('Введите натуральное число N: '); Readln(N);
minNumber := 0; flag := False;
for i := 10 to 9999 do begin product := 1; j := i;
while j > 0 do begin digit := j mod 10; product := product * digit; j := j div 10; end; if product = N then begin minNumber := i; flag := True; break; end;
end;
if flag then WriteLn('Наименьшее число M: ', minNumber) else WriteLn(0); end.
program SmallestMultiple;
var
N, i, j, product: Integer;
digit, minNumber: Integer;
flag: Boolean;
begin
Write('Введите натуральное число N: ');
Readln(N);
minNumber := 0;
flag := False;
for i := 10 to 9999 do
while j > 0 dobegin
product := 1;
j := i;
begin
digit := j mod 10;
product := product * digit;
j := j div 10;
end;
if product = N then
begin
minNumber := i;
flag := True;
break;
end;
end;
if flag then
WriteLn('Наименьшее число M: ', minNumber)
else
WriteLn(0);
end.