33 lines
590 B
Plaintext
33 lines
590 B
Plaintext
proc lagarias(int n) int:
|
|
int f, r, s;
|
|
if n<0 then
|
|
-lagarias(-n)
|
|
elif n<2 then
|
|
0
|
|
else
|
|
s := 0;
|
|
r := n;
|
|
while r % 2 = 0 do
|
|
r := r / 2;
|
|
s := s + n / 2
|
|
od;
|
|
f := 3;
|
|
while f <= r do
|
|
while r % f = 0 do
|
|
r := r / f;
|
|
s := s + n / f
|
|
od;
|
|
f := f + 2
|
|
od;
|
|
s
|
|
fi
|
|
corp
|
|
|
|
proc main() void:
|
|
int n;
|
|
for n from -99 upto 100 do
|
|
write(lagarias(n):7);
|
|
if (n+100) % 10=0 then writeln() fi
|
|
od
|
|
corp
|