From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!/usr/bin/ruby
#
#
func digroot (r, base = 10) {
var root = r.base(base)
var persistence = 0
while (root.len > 1) {
root = root.chars.map{|n| Number(n, 36) }.sum.base(base)
++persistence
}
return(persistence, root)
}
var nums = [5, 627615, 39390, 588225, 393900588225]
var bases = [2, 3, 8, 10, 16, 36]
var fmt = "%25s(%2s): persistance = %s, root = %2s\n"
nums << (550777011503 *
105564897893993412813307040538786690718089963180462913406682192479)
bases.each { |b|
nums.each { |n|
var x = n.base(b)
x = 'BIG' if (x.len > 25)
fmt.printf(x, b, digroot(n, b))
}
print "\n"
}