21 lines
532 B
Text
21 lines
532 B
Text
import "./big" for BigInt
|
|
import "./fmt" for Fmt
|
|
|
|
var D = Fn.new { |n|
|
|
if (n < 0) return -D.call(-n)
|
|
if (n < 2) return BigInt.zero
|
|
var f = BigInt.primeFactors(n)
|
|
var c = f.count
|
|
if (c == 1) return BigInt.one
|
|
if (c == 2) return f[0] + f[1]
|
|
var d = n / f[0]
|
|
return D.call(d) * f[0] + d
|
|
}
|
|
|
|
var ad = List.filled(200, 0)
|
|
for (n in -99..100) ad[n+99] = D.call(BigInt.new(n))
|
|
Fmt.tprint("$4i", ad, 10)
|
|
System.print()
|
|
for (m in 1..20) {
|
|
Fmt.print("D(10^$-2d) / 7 = $i", m, D.call(BigInt.ten.pow(m))/7)
|
|
}
|