An integer number is said to be a perfect number if the sum of its factors, including 1 (but not the number itself), is equal to the number. For example, 6 is a perfect number, because 6 = 1
+ 2 + 3. Write a function perfect that determines whether parameter number is a perfect number. Use this function in a program that determines and prints all the perfect numbers between 1 and 1000. Print the factors of each perfect number to confirm that the number is indeed perfect.
def perfect(num):
""" Function to check if parameter number is perfect.
If so, return the list of factors."""
factors = []
for i in range(1, num):
# Check if i is a factor of num
if num % i == 0:
factors.append(i)
if sum(factors) != num:
return False
return factors
for num in range(1, 1000):
if perfect(num):
factors = perfect(num)
print(num, '=', end=' ')
print(*factors, sep=' + ')
Comments
Leave a comment