In this post, we will write a python program to check a perfect number but before writing the program let’s understand what is a perfect number.

What is the Perfect Number?

A number that is equal to the sum of its proper divisors is known as a perfect number.

for example: 6 —-> proper divisor of 6 is 1,2,3 and sum of 1+2+3 = 6, that means 6 is perfect number.

we should write this program in three different ways:

  1. simple (by taking user input).
  2. by using function.
  3. except error (using try-except) if the user input wrong data.

Now let’s write program to check perfect number.

1. Simple (by taking user input)

for this program you should have knowledge about:

  1. for loop
  2. if-else

Source code:

number = int(input("Enter A number :"))
sum = 0
print(f"divisor of {number} is : ",end="")
for i in range(1,number):
    if number % i == 0:
        print(i,end=",")
        sum+=i
        
print("\n")
if sum == number:
    print(f"{number} is perfect number")
else:
    print(f"{number} is not perfect number")

Output-1:

Enter A number :6
divisor of 6 is : 1,2,3,

6 is perfect number

Output-2:

Enter A number :14
divisor of 14 is : 1,2,7,

14 is not perfect number

Explaination

number variable is used to take integer value from the user.

sum variable (which is initially zero) is used to store the sum of divisors.

then after we find all the divisors using the for-loop & if statement and store the sum of all the divisors of the number in sumthe variable.

after that, if sum == number then the number is a perfect number otherwise it is not a perfect number.

2. By using function

Write a python program to check the perfect number using a function.

For this program you should have Knowledge about:

  1. if-else
  2. for loop
  3. function

Source code:

def Perfect_number(num):
    sum = 0
    print(f"divisor of {number} is : ",end="")
    for i in range(1,num):
        if num % i == 0:
            print(i,end=",")
            sum+=i
    print("\n")
    if sum == num:
        return f"{num} is perfect number"
    else:
        return f"{num} is not perfect number"

number = int(input("Enter A number :"))

print(Perfect_number(number))

Output-1:

Enter A number :28
divisor of 28 is : 1,2,4,7,14,

28 is perfect number

Output-2:

Enter A number :36
divisor of 36 is : 1,2,3,4,6,9,12,18,

36 is not perfect number

3. except error (using try-except) if user input wrong data.

Write a program to check the perfect number in which except error (using try-except) if the user input wrong data.

For this program you should have Knowledge about:

  1. if-else
  2. for loop
  3. function
  4. try-except block

Now let’s write a program and see the output and how it’s working.

Source code:

def Perfect_number(num):
    sum = 0
    print(f"divisor of {number} is : ",end="")
    for i in range(1,num):
        if num % i == 0:
            print(i,end=",")
            sum+=i

    print("\n")

    if sum == num:
        return f"{num} is perfect number"
    else:
        return f"{num} is not perfect number"


while True:
    try:
        number = int(input("Enter A number :"))
        if type(number) == int: 
            break

    except ValueError:
        print("pls Enter valid number(only numberical data allowed)")

print(Perfect_number(number))

Output-1:

Enter A number :six
pls Enter valid number(only numberical data allowed)
Enter A number :6
divisor of 6 is : 1,2,3,

6 is perfect number

Output-2:

Enter A number :sixteen
pls Enter valid number(only numberical data allowed)
Enter A number :16
divisor of 16 is : 1,2,4,8,

16 is not perfect number

Hope this content adds some value to your life -thank you.

Author

Hi, I'm Yagyavendra Tiwari, a computer engineer with a strong passion for programming. I'm excited to share my programming knowledge with everyone here and help educate others in this field.

Write A Comment