
Напишите программу, которая по введённому натуральному числу N (N≤500) выдаёт наименьшее число M,
произведение цифр которого (в десятичной записи) равно N или 0, если такого M не существует. (Pascal)

Ответы на вопрос

// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (n, i) := (ReadInteger('N ='), 9);
var st := new Stack<integer>;
if n = 1 then st.Push(1)
else
if n <= 0 then
begin
Println('Требуется натуральное число');
Exit
end;
while (i > 1) and (n <> 1) do
if n mod i = 0 then
begin
st.Push(i);
n := n div i
end
else i -= 1;
Print('M =');
if n > 1 then Print('0')
else st.Println('')
end.
Пример
N = 420
M = 2567



Для решения этой задачи воспользуемся языком программирования Pascal. Ниже приведен код программы:
pascalprogram FindMinProductNumber; function CalculateProductOfDigits(num: Integer): Integer; begin Result := 1; while num > 0 do begin Result := Result * (num mod 10); num := num div 10; end; end; function FindMinProductNumber(N: Integer): Integer; var M, product: Integer; begin M := 1; while M <= 500 do begin product := CalculateProductOfDigits(M); if (product = N) then begin Result := M; Exit; end; Inc(M); end; Result := 0; end; var N, M: Integer; begin writeln('Введите натуральное число N (N ≤ 500):'); readln(N); if (N <= 0) or (N > 500) then writeln('Некорректный ввод. Число N должно быть в диапазоне от 1 до 500.') else begin M := FindMinProductNumber(N); if M = 0 then writeln('Наименьшее число M не существует.') else writeln('Наименьшее число M: ', M); end; end.
Как работает программа:
Мы определяем две функции:
CalculateProductOfDigits
: Эта функция вычисляет произведение цифр числаnum
.FindMinProductNumber
: Эта функция находит наименьшее числоM
, произведение цифр которого равноN
.
В основной части программы сначала считываем ввод пользователя, проверяем его на корректность (что число находится в допустимом диапазоне от 1 до 500) и затем вызываем функцию
FindMinProductNumber
для нахождения ответа.Если такое число
M
существует (отличное от нуля), программа выводит его на экран. В противном случае выводится сообщение о том, что такое число не существует.


Похожие вопросы
Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili