Method 1: Using for loop
def check_perfect_number(num): sum = 0 for i in range(1, num): if n % i == 0: sum += i return sum == num n = int(input("Enter the number you want to check whether it is a perfect number or not: ")) print(check_perfect_number(n))
Output:
Enter the number you want to check whether it is a perfect number or not: 28
True
Explanation:
This first method is to use a for loop to iterate through all the divisors of the number and evaluates if the sum of the divisors is equal to the number itself. The Divisor of 28 is 1,2,4,7,14 and the Sum of the divisor is 1+2+4+7+14=28 thus, 28 is a perfect number.
Method 2: Using a while loop
if sum(divisors) == num: return True else: return False n = int(input("Enter the number you want to check whether it is perfect number or not: ")) print( check_perfect_number(n))
Explanation:
Another approach is to search for divisors and add them to a list using a while loop. After the loop is complete, we determine whether the number itself and the sum of its divisors equal each other.
Method 3: Using list comprehension
def check_perfect_number(num): divisors = [i for i in range(1, num) if num % i == 0] if sum(divisors) == num: return True else: return False n = int(input("Enter the number you want to check whether it is perfect number or not: ")) print(check_perfect_number(n))
Explanation:
Using list comprehension to search for divisors and add them to a list in one line is a shorter way. Then, determine whether the number itself equals the sum of the divisors.
Here is the end of our article on Python functions to check whether a number is perfect or not. We saw in total three methods i.e using for loop, while loop, and the concept of list comprehension.