Найти все числа, не превосходящие 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.
Объяснение кода листинга программы
- Объявляется функция
pr_del
с параметромn
типаinteger
и возвращаемым значением типаinteger
. - Объявляется переменная
i
типаinteger
. - Внутри функции проверяется условие: если
n
меньше 2, тоresult
равно 0, иначеresult
равно 1. - В цикле от 2 до
n
деленного на 2 проверяется каждое число на кратность и в случае успешной проверки умножается наresult
. - В основной программе объявляются переменные
n
,i
иk
типаinteger
. - Запрашивается ввод значения переменной
n
. - Инициализируется переменная
k
равная 0. - В цикле от 1 до
n
вызывается функцияpr_del
, и если результат функции равен текущему числуi
, то переменнаяk
устанавливается в 1 и выводится числоi
. - Если после цикла
k
осталась равной 0, то выводится сообщениетаких чисел нет
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д