Найти все числа, не превосходящие n, которые равны произведению своих делителей меньших n - Pascal

Узнай цену своей работы

Формулировка задачи:

Найти все числа, не превосходящие n, которые равны произведению своих делителей меньших n (Реализовать функцию, вычисляющую произведение делителей числа).

Решение задачи: «Найти все числа, не превосходящие n, которые равны произведению своих делителей меньших n»

textual
Листинг программы
function pr_del(n:integer):integer;
var i:integer;
begin
if n<2 then result:=0
else result:=1;
for i:=2 to n div 2 do
if n mod i=0 then result:=result*i
end;
var n,i,k:integer;
begin
write('n=');
readln(n);
k:=0;
for i:=1 to n do
if pr_del(i)=i then
 begin
  k:=1;
  writeln(i);
 end;
if k=0 then write('таких чисел нет');
end.

Объяснение кода листинга программы

  1. Объявляется функция pr_del с параметром n типа integer и возвращаемым значением типа integer.
  2. Объявляется переменная i типа integer.
  3. Внутри функции проверяется условие: если n меньше 2, то result равно 0, иначе result равно 1.
  4. В цикле от 2 до n деленного на 2 проверяется каждое число на кратность и в случае успешной проверки умножается на result.
  5. В основной программе объявляются переменные n, i и k типа integer.
  6. Запрашивается ввод значения переменной n.
  7. Инициализируется переменная k равная 0.
  8. В цикле от 1 до n вызывается функция pr_del, и если результат функции равен текущему числу i, то переменная k устанавливается в 1 и выводится число i.
  9. Если после цикла k осталась равной 0, то выводится сообщение таких чисел нет.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы