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

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

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

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

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

textual
Листинг программы
  1. function pr_del(n:integer):integer;
  2. var i:integer;
  3. begin
  4. if n<2 then result:=0
  5. else result:=1;
  6. for i:=2 to n div 2 do
  7. if n mod i=0 then result:=result*i
  8. end;
  9. var n,i,k:integer;
  10. begin
  11. write('n=');
  12. readln(n);
  13. k:=0;
  14. for i:=1 to n do
  15. if pr_del(i)=i then
  16.  begin
  17.   k:=1;
  18.   writeln(i);
  19.  end;
  20. if k=0 then write('таких чисел нет');
  21. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы