lagarias = function (n) // Lagarias arithmetic derivative if n < 0 then return -lagarias (-n) else if n == 0 or n == 1 then return 0 else smallPf = function (j, k) // Smallest prime factor if j % k == 0 then return k else return smallPf (j, k + 1) end if end function f = smallPf (n, 2) q = floor (n / f) if q == 1 then return 1 else return q * lagarias (f) + f * lagarias (q) end if end if end function fmt6 = function (n) // return a 6 character string representation of n s = str( n ) if s.len > 5 then return s else return ( " " * ( 6 - s.len ) ) + s end if end function ad = "" for n in range( -99, 100 ) ad = ad + " " + fmt6( lagarias (n) ) if n % 10 == 0 then print( ad ) ad = "" end if end for print() for n in range( 1, 17 ) m = 10 ^ n print( "D(" + str(m) + ") / 7 = " + str( floor (lagarias (m) / 7) ) ) end for