26 lines
529 B
Awk
26 lines
529 B
Awk
# syntax: GAWK -f DIGITAL_ROOT.AWK
|
|
BEGIN {
|
|
n = split("627615,39390,588225,393900588225,10,199",arr,",")
|
|
for (i=1; i<=n; i++) {
|
|
dr = digitalroot(arr[i],10)
|
|
printf("%12.0f has additive persistence %d and digital root of %d\n",arr[i],p,dr)
|
|
}
|
|
exit(0)
|
|
}
|
|
function digitalroot(n,b) {
|
|
p = 0 # global
|
|
while (n >= b) {
|
|
p++
|
|
n = digitsum(n,b)
|
|
}
|
|
return(n)
|
|
}
|
|
function digitsum(n,b, q,s) {
|
|
while (n != 0) {
|
|
q = int(n / b)
|
|
s += n - q * b
|
|
n = q
|
|
}
|
|
return(s)
|
|
}
|