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