21 lines
471 B
Plaintext
21 lines
471 B
Plaintext
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
|