19 lines
363 B
Crystal
19 lines
363 B
Crystal
def digital_root_with_persistence_to_s(n : Int) : {Int32, Int32}
|
|
n = n.abs
|
|
persistence = 0
|
|
|
|
until n <= 9
|
|
persistence += 1
|
|
|
|
digit_sum = n.to_s.chars.sum &.to_i
|
|
|
|
n = digit_sum
|
|
end
|
|
|
|
{n, persistence}
|
|
end
|
|
|
|
puts digital_root_with_persistence_to_s 627615
|
|
puts digital_root_with_persistence_to_s 39390
|
|
puts digital_root_with_persistence_to_s 588225
|
|
|