Совершенные числа Turbo Pascal
Формулировка задачи:
Дано натуральное число n, Получить все совершенные числа меньше n.
Помогите написать программу , с обнесением командных строк ,что бы я мог разобраться,огромное спасибо кто поможет !
Решение задачи: «Совершенные числа Turbo Pascal»
textual
Листинг программы
uses crt; var n,i:longint; function sov(n:longint):boolean; var sum:longint; begin sum:=0; i:=1; while i<n do if ((n mod i)=0) then begin inc(sum,i); inc(i) end else inc(i); if sum=n then sov:=true else sov:=false end; begin clrscr; write('N = '); readln(n); if n<=6 then write('Совершенных чисел, меньших N нет!') else begin writeln('Cовершенные числа, меньшие заданного N:'); for i:=1 to n-1 do if sov(i) then writeln(i); end; readkey; end.
Объяснение кода листинга программы
- В функции
sov
используется переменнаяsum
для хранения суммы делителей числаn
. - Переменная
i
инициализируется значением 1 и используется для проверки делителей числаn
. - Цикл while проверяет все делители числа
n
от 1 доn-1
. - Если число
i
является делителем числаn
, то оно добавляется к переменнойsum
и увеличивается на 1. - Если число
i
не является делителем числаn
, то оно просто увеличивается на 1. - После цикла while проверяется, равно ли значение переменной
sum
числуn
. Если да, то функция возвращает значение true, иначе - false. - В основной части программы считывается число
n
с помощью функции readln. - Если число
n
меньше или равно 6, то выводится сообщение о том, что совершенных чисел, меньших заданного числа, нет. - Если число
n
больше 6, то выводится сообщение о том, что будут выведены все совершенные числа, меньшие заданного числа. - Затем с помощью цикла for выводятся все совершенные числа, меньшие заданного числа
n
. - В конце программы считывается нажатая клавиша с помощью функции readkey.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д