Perfect numbers: Difference between revisions

Content added Content deleted
(→‎{{header|PL/M}}: Added alternative much faster version, translated from Action!)
Line 534: Line 534:
integer sum, f1, f2;
integer sum, f1, f2;
sum := 1;
sum := 1;
f1 := 2;
f1 := 1;
for f1 := f1 while (f1 * f1) < n do
for f1 := f1 + 1 while (f1 * f1) < n do
begin
begin
if mod(n, f1) = 0 then
if mod(n, f1) = 0 then
Line 543: Line 543:
if f2 > f1 then sum := sum + f2;
if f2 > f1 then sum := sum + f2;
end;
end;
f1 := f1 + 1;
end;
end;
isperfect := (sum = n);
isperfect := (sum = n);
end;
end;