Найти все числа, не превосходящие 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, то выводится сообщениетаких чисел нет
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д