local int = require "int" local fmt = require "fmt" local function D(n) if n < 0 then return -D(-n) end if n < 2 then return 0 end local f = int.factors(n) if #f == 1 then return 1 end if #f == 2 then return f[1] + f[2] end local d = n // f[1] return D(d) * f[1] + d end local ad = {} for n = -99, 100 do ad[n + 100] = D(n) end fmt.tprint("%4d", ad, 10) print() for m = 1, 20 do fmt.print("D(10^%-2d) / 7 = %.0f", m, D(10 ^ m) // 7) end