Напишите программу, которая вводит натуральное число N и определяет является ли число N совершенным. Если можно с подробным или кратким объяснением
По определению совершенным числом называется то число, которое равно сумме своих делителей отличных от самого числа. Значит,чтобы решить задачу нам нужно найти сумму делителей числа и проверить равна ли она самому числу.
var
sum, N, i:integer;
begin
readln(N);//читаем число с клавиатуры
//Проверяем делатели до N-1, т.к. нам нужны делители не равные
//самому числу
for i:=1 to N-1 do
if N mod i = 0 then//Если i является делителем N, то...
sum:=sum+i;// ...прибавляем его к сумме делителей
// Проверяем равна ли сумма делителей числа самому числу.
if sum = N then
writeln(Число совершенное)
else
writeln(Число не совершенное);
end.
Оцени ответ
