-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPersistencesAndRoots.py
More file actions
66 lines (53 loc) · 1.51 KB
/
PersistencesAndRoots.py
File metadata and controls
66 lines (53 loc) · 1.51 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
def printResult(number, multPer, multRoot, addPer, addRoot):
print("For the integer " + str(number) + ":")
print("Multiplicative Persistence: " + str(multPer))
print("Multiplicative Root: " + str (multRoot))
print ("Additive Persistence: " + str(addPer))
print ("Additive Root: " + str(addRoot))
def rootsPersistencesAdd(number, addPer):
if (len(str(number)) == 1):
return number
else:
digitAdd = str(number)
number = int(digitAdd[0])
for digit in digitAdd[1:]:
number+=int(digit)
addPer[0]+=1
return rootsPersistencesAdd(number, addPer)
def rootsPersistencesMult(number, multPer):
if (len(str(number)) == 1):
return number
else:
digitMult = str(number)
number = int(digitMult[0])
for digit in digitMult[1:]:
number*=int(digit)
multPer[0]+=1
return rootsPersistencesMult(number, multPer)
def rootsPersistences(number):
multPer = [0]
multRoot = 0
multRoot = rootsPersistencesMult(number, multPer)
addPer = [0]
addRoot = 0
addRoot = rootsPersistencesAdd(number, addPer)
printResult(number, multPer[0], multRoot, addPer[0], addRoot)
def again():
ans = input("Do you want to go again? (Y/N): ")
if (ans.lower() == "y" or ans.lower() == "yes"):
main()
return
def main():
while True:
number = input("Please provide an positive integer: ")
if (number.isdigit()):
if (len(str(number)) >= 1):
number = int(number)
break
if (number < 0):
return number
else: printResult (number)
else: print("That's not a number.")
rootsPersistences(number)
again()
main()