32 lines
629 B
Text
32 lines
629 B
Text
$ include "seed7_05.s7i";
|
|
|
|
const func boolean: isPerfect (in integer: n) is func
|
|
result
|
|
var boolean: isPerfect is FALSE;
|
|
local
|
|
var integer: i is 0;
|
|
var integer: sum is 1;
|
|
var integer: q is 0;
|
|
begin
|
|
for i range 2 to sqrt(n) do
|
|
if n rem i = 0 then
|
|
sum +:= i;
|
|
q := n div i;
|
|
if q > i then
|
|
sum +:= q;
|
|
end if;
|
|
end if;
|
|
end for;
|
|
isPerfect := sum = n;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
local
|
|
var integer: n is 0;
|
|
begin
|
|
for n range 2 to 33550336 do
|
|
if isPerfect(n) then
|
|
writeln(n);
|
|
end if;
|
|
end for;
|
|
end func;
|