RosettaCodeData/Task/Digital-root/Nim/digital-root.nim
2016-12-05 23:44:36 +01:00

14 lines
371 B
Nim

import strutils
proc droot(n: int64): auto =
var x = @[n]
while x[x.high] > 10:
var s = 0'i64
for dig in $x[x.high]:
s += parseInt("" & dig)
x.add s
return (x.len - 1, x[x.high])
for n in [627615'i64, 39390'i64, 588225'i64, 393900588225'i64]:
let (a, d) = droot(n)
echo align($n, 12)," has additive persistance ",a," and digital root of ",d