Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
13
Task/Digital-root/Icon/digital-root.icon
Normal file
13
Task/Digital-root/Icon/digital-root.icon
Normal 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
|
||||
19
Task/Digital-root/Ruby/digital-root.rb
Normal file
19
Task/Digital-root/Ruby/digital-root.rb
Normal 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) }
|
||||
Loading…
Add table
Add a link
Reference in a new issue