-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathperfect_num.py
More file actions
31 lines (26 loc) · 981 Bytes
/
perfect_num.py
File metadata and controls
31 lines (26 loc) · 981 Bytes
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
##############################################################################
# The program detects if the number is perfect
##############################################################################
while True:
def dividors(number):
a = [i for i in range(1, number + 1) if number % i == 0]
print("\nThis number '{}' has these dividors => {} ".format(number, a))
return a
def perfect(number):
tuple = dividors(number)
tuple.pop() # delete last value
b = 0
for i in tuple:
b += i
print("The sum of these numbers except the last value is: {} ".format(b))
if b == number:
return True
else:
return False
number = input("Give me a number: ")
if number.isdecimal():
number = int(number)
print("This number '{}' is perfect => {} ".format(number, perfect(number)))
break
else:
print("Bad input, Try again.\n")