22 lines
737 B
Plaintext
22 lines
737 B
Plaintext
begin
|
|
integer procedure lagarias ( integer value n ) ; % Lagarias arithmetic derivative %
|
|
if n < 0
|
|
then -lagarias (-n)
|
|
else if n = 0 or n = 1
|
|
then 0
|
|
else begin
|
|
integer f, q;
|
|
integer procedure smallPf ( integer value j, k ) ; % Smallest prime factor %
|
|
if j rem k = 0 then k else smallPf (j, k + 1);
|
|
f := smallPf (n, 2); q := n div f;
|
|
if q = 1
|
|
then 1
|
|
else q * lagarias (f) + f * lagarias (q)
|
|
end lagarias ;
|
|
|
|
for n := -99 until 100 do begin
|
|
writeon( i_w := 6, s_w := 0, " ", lagarias (n) );
|
|
if n rem 10 = 0 then write()
|
|
end for_n
|
|
end.
|