How to create a perfect number function using lists

Viewed 15

My perfect number function is not working as intended :(. It prints false even though it should print true :(

def perfect_check(number):
    z = []
    for i in range(1, number):
        if number % i == 0:
            z.append(i)
            if sum(z) == number:
                return True
            else:
                return False

print(perfect_check(6))
1 Answers
def perfect_check(number):
    z = []
    for i in range(1, number):
        if number % i == 0:
            z.append(i)
    if sum(z) == number:
        return True
    else:
        return False

print(perfect_check(6))

You have put the if-else statement inside your for loop. It should be outside the for loop. Then, your code will work correctly.

Related