codice:
Program NumeriPerfetti;

Var a: Integer;
    sum: Integer;
    tmp: Integer;

Begin
   Writeln('Introdurre numero: ');
   Readln(a);
   tmp := 1;
   sum := 0;
   while (tmp < a) do
   begin
      if ((a mod tmp) = 0) then
      begin
         sum := sum + tmp;
      end;
      tmp := tmp + 1;
   end;
   if (sum = a) then Writeln('Il numero ',a,' è perfetto!')
   else Writeln('Il numero ',a,' non è perfetto!');
End.
Ciao.