RosettaCodeData/Task/Digital-root/Oforth/digital-root.fth

5 lines
148 B
Forth

: sumDigits(n, base) 0 while(n) [ n base /mod ->n + ] ;
: digitalRoot(n, base)
0 while(n 9 >) [ 1 + sumDigits(n, base) ->n ] n swap Pair new ;