Q. Write a program to check whether the given number is Perfect Number or not.



Perfect Number :- Perfect number, a positive integer equal to the sum of its proper divisors. The smallest Perfect number is 6, which is the sum of 1, 2 and 3.
For Example:-
Input = 28
Output = 28 is the Perfect Number.
So as we can see that the divisor of 28 is 1, 2, 4, 7, 14, so the sum of all the divisors is 28 (1 + 2 + 4 + 7 + 14 = 28). Therefore, 28 is the Perfect number.

Perfect Number Algorithm

START
    Step 1 - Input the number.
    Step 2 - Find all divisors of the number except the number itself.
    Step 3 - If the sum of all divisors of the number is equal to the number, then return true. Else, return false.
STOP


Perfect Number Program

  • C
  • C++
  • Java
  • Python
  • C#
  • PHP
  • #include <stdio.h>
    int main()
    {
        int num=28,i;
        int sum;
        sum=0;
     
        for(i=1; i< num;i++)
        {
            if(num%i==0)
                sum+=i;
        }
     
        if(sum==num)
            printf("%d is a perfect number.",num);
        else
            printf("%d is not a perfect number.",num);
     
        return 0;
    }
    
    #include <bits/stdc++.h>
    using namespace std; 
    
    int main(){
        int num=28,i=1,sum=0;
       
           while(i< num){
           if(num%i==0)
           sum=sum+i;
           i++; 
    }
     
    if(sum==num)
        cout << i << " is a perfect number\n"; 
    else
        cout << i << " is not a perfect number\n";
    return 0;
    }
    
    public class LFC {
      
      public static void main(String[] args) {
        int i, num=28, Sum = 0 ;
    
        for(i = 1 ; i < num ; i++) {
          if(num % i == 0)  {
            Sum = Sum + i;
          }
        }
        if (Sum == num) {
          System.out.format("% d is a Perfect Number", num);
        }
        else {
          System.out.format("% d is NOT a Perfect Number", num);
        }
      }
    }
    
    # Python Program to find Perfect Number using For loop
    
    num = 28
    Sum = 0
    for i in range(1, num):
        if(num % i == 0):
            Sum = Sum + i
    if (Sum == num):
        print(" %d is a Perfect Number" %num)
    else:
        print(" %d is not a Perfect Number" %num)
      
    using System;
    
    namespace LFC
    {
        class LFC
        {
            static void Main(string[] args)
            {
                int num=28,sum=0,n;
                n = num;
                for (int i = 1; i < num;i++)
                {
                    if (num % i == 0)
                    {
                        sum=sum + i;
                    }
                }
                    if (sum == n)
                    {
                        Console.WriteLine(n+" is a perfect number");
                        Console.ReadLine();
                    }
                    else
                    {
                        Console.WriteLine(n+" is not a perfect number");
                        Console.ReadLine();
                    }
                }
          }
    }
    
    function check_perfectnumber($num) 
    { 
        // To store the sum 
        $sum = 0; 
           
        // Traversing through each number 
        // In the range [1,N) 
        for ($i = 1; $i < $num; $i++) 
        { 
            if ($num % $i == 0) 
            { 
                $sum = $sum + $i; 
            }       
        } 
          
        // returns True is sum is equal 
        // to the original number. 
        return $sum == $num; 
    } 
       
    // Driver's code 
    $num = 28; 
      
    if (check_perfectnumber($num)) 
        echo "$num is a Perfect Number"; 
    else
        echo "$num is not a Perfect Number";
    
    
    #include <stdio.h>
    int main()
    {
        int num=28,i;
        int sum;
        sum=0;
     
        for(i=1; i< num;i++)
        {
            if(num%i==0)
                sum+=i;
        }
     
        if(sum==num)
            printf("%d is a perfect number.",num);
        else
            printf("%d is not a perfect number.",num);
     
        return 0;
    }
    

    Output

    28 is a perfect number.
    

    Recommended Programs

       Program to check Armstrong Number.
       Program to check Leap Year.