Persistent Bugger
Problem Description:
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:
Solution & Grammar Explanation:
Solution1:
def persistence(n):
times = 0
if n < 10:
return times
while True:
times += 1
r = 1
while n > 0:
r *= n % 10
n = n//10
if r < 10:
return times
else:
n = r
Solution2:
def persistence(n):
i = 0
while n>=10:
n = reduce(lambda x,y:x*y, [int(x) for x in str(n)])
i += 1
return i
lambda expression:Click here to learn!
Solution3:
import operator
def persistence(n):
i = 0
while n>=10:
n=reduce(operator.mul,[int(x) for x in str(n)],1)
i+=1
return i