This commit is contained in:
Ingy döt Net 2013-10-27 22:24:23 +00:00
parent 6f050a029e
commit 776bba907c
3887 changed files with 59894 additions and 7280 deletions

View file

@ -0,0 +1,13 @@
procedure main(A)
every m := n := integer(!A) do {
ap := 0
while (*n > 1) do (ap +:= 1, n := sumdigits(n))
write(m," has additive persistence of ",ap," and digital root of ",n)
}
end
procedure sumdigits(n)
s := 0
n ? while s +:= move(1)
return s
end

View file

@ -0,0 +1,19 @@
class String
def digroot_persistance(base)
num = self.to_i(base)
persistance = 0
until num < base do
num = num.to_s(base).each_char.reduce(0){|m, c| m += c.to_i(base) }
persistance += 1
end
[num.to_s(base), persistance]
end
end
#Handles bases upto 36; Demo:
[["101101110110110010011011111110011000001", 2],
[ "5BB64DFCC1", 16],
["5", 10],
["393900588225", 10],
["50YE8N29", 36]].each{|(str, base)| puts "#{str} base #{base} has a digital root \
of %s and a resistance of %s." % str.digroot_persistance(base) }