-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolution.py
31 lines (21 loc) · 951 Bytes
/
solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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) = > 3 # Because 3*9 = 27, 2*7 = 14, 1*4=4
# and 4 has only one digit.
# persistence(999) = > 4 # Because 9*9*9 = 729, 7*2*9 = 126,
# 1*2*6 = 12, and finally 1*2 = 2.
# persistence(4) = > 0 # Because 4 is already a one-digit number.
# persistence(39) # returns 3, because 3*9=27, 2*7=14, 1*4=4
# and 4 has only one digit
# persistence(999) # returns 4, because 9*9*9=729, 7*2*9=126,
# 1*2*6=12, and finally 1*2=2
# persistence(4) # returns 0, because 4 is already a one-digit number
from functools import reduce
def persistence(n):
n = list(str(n))
count = 0
while len(n) > 1:
n = list(str(reduce(lambda a, b: int(a) * int(b), n)))
count += 1
return count