Skip to content

Latest commit

 

History

History
22 lines (16 loc) · 626 Bytes

6 kyu - Persistent Bugger.md

File metadata and controls

22 lines (16 loc) · 626 Bytes

Task

Write a function, persistence, that takes in a positive parameter num and returns its multiplicative persistence which is the number of times you must multiply the digits in num until you reach a single digit.

For example:

persistence(39) # returns 3, because 39=27, 27=14, 1*4=4 # and 4 has only one digit

persistence(999) # returns 4, because 999=729, 729=126, # 126=12, and finally 1*2=2

persistence(4) # returns 0, because 4 is already a one-digit number

Solution

def persistence(n)
  return 0 if n < 10
  1 + persistence(n.digits.reduce(&:*))
end