<h3>PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
function СовершенноеЧисло(n: integer): boolean;
begin
var (s,d,n2) := (1,2,n div 2);
while d <= n2 do
begin
if n mod d = 0 then s += d;
Inc(d)
end;
Result := n = s
end;
begin
if СовершенноеЧисло(ReadInteger) then Print('Совершенное')
else Print('Несовершенное')
end.
<h2>Пример</h2><h3>33550336</h3><h3>Совершенное </h3>