Newer
Older
def is_perfect(number):
if type(number)==float:
print("Warning, {0} is a float. The function will consider it to be {1} instead.".format(number,int(number+0.5)))
number = int(number+0.5)
elif type(number) != int:
print("Error, cannot understand the user input : {0}".format(number))
return False
sum_div = 0
for div in range(1,number+1):
if number%div == 0:
sum_div += div
return sum_div == 2*number
test_cases = [1,1.0, 1.49 , 1.51, "arboretum", 2,3,4,5,6,7,8,9,10,28,496]
for test in test_cases:
print("Trying {0} : {1}".format(test,is_perfect(test)))