Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N — 1, у которых произведение всех цифр совпадает с суммой

Вопрос посетителя

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N — 1, у которых произведение всех цифр совпадает с суммой цифр данного числа. Если таких чисел нет, то вывести слово «нет».
Пример: N = 44. Числа: 18, 24

Ответ эксперта

uses crt;
var n,m,i,p:longint;
    s,k:byte;
begin
clrscr;
repeat
write(‘Введите натуральное число N=’);
readln(n);
until n>0;
m:=n;
s:=0;
while m>0 do
 begin
  s:=s+m mod 10;
  m:=m div 10;
 end;
writeln(‘Числа от 1 до ‘,n-1,’, у которых произведение цифр=’,s);
k:=0;
for i:=1 to n-1 do
 begin
  m:=i;
  p:=1;
  while m>0 do
   begin
    p:=p*(m mod 10);
    m:=m div 10;
   end;
  if p=s then
   begin
    k:=1;
    write(i,’ ‘);
   end;
 end;
if k=0 then write(‘Таких чисел нет’);
readln
end.

image_pdfСкачать ответimage_printРаспечатать решение

Добавить комментарий

Похожие вопросы от пользователей