program PerfectNumberCheck;
var
num, i, sumOfFactors: integer;
begin
// If the sum of all factors of a number is equal to the number, then the number is perfect
num := 28;
sumOfFactors := 0;
// 28
// factors = 1 + 2 + 4 + 7 + 14
// 1 + 2 + 4 + 7 + 14 = 28
for i := 1 to num - 1 do
begin
if num mod i = 0 then
sumOfFactors := sumOfFactors + i;
end;
if sumOfFactors = num then
writeln('Perfect Number')
else
writeln('Not a Perfect Number');
readln;
end.
(*
run:
Perfect Number
*)