codescracker
c++

C++ Program to Check Perfect Number



« C++ Tutorial C++ Example »

This page is created to provide you some programs in C++ that is used to check whether a number entered by user is a perfect number or not. But before going through all these programs that are:

let's first understand, what are perfect numbers.

Which Number can be called as a Perfect Number ?

If a number is equal to the sum of its positive divisors (excluding the number itself), then that number can be called as a perfect number. For example, 28 is a perfect number, because the divisors of 28 in this case are 1, 2, 4, 7, 14. And the sum of all these numbers gives the number itself. That is:

28 = 1+2+4+7+14
   = 14+14
   = 28

Therefore 28 is a perfect number. Some other perfect numbers are 6, 496, 8128 etc. Now let's move on to the program given below.

Check Perfect Number using for Loop

The question is, write a program in C++ that checks whether a number is a perfect number or not. The number must be entered by user at run-time of the program. The answer to this question is:

#include<iostream>

using namespace std;
int main()
{
   int num, i, sum=0;
   cout<<"Enter a Number: ";
   cin>>num;
   for(i=1; i<num; i++)
   {
      if(num%i==0)
         sum = sum+i;
   }
   if(num==sum)
      cout<<endl<<num<<" is a Perfect Number.";
   else
      cout<<endl<<num<<" is not a Perfect Number.";
   cout<<endl;
   return 0;
}

Here is its initial output:

c++ program check perfect number

Now enter a number as input say 496 and press ENTER key to check whether it is a perfect number or not like shown in the snapshot given below:

check perfect number or not c++ program

The dry run of above program with user input 6 goes like:

Check Perfect Number using while Loop

To change the above program and create a new program using while loop, following the steps given below:

Here is the program that uses while loop instead of for to do the same job as of previous program.

#include<iostream>

using namespace std;
int main()
{
   int num, i=1, sum=0;
   cout<<"Enter a Number: ";
   cin>>num;
   while(i<num)
   {
      if(num%i==0)
         sum = sum+i;
      i++;
   }
   if(num==sum)
      cout<<endl<<num<<" is a Perfect Number.";
   else
      cout<<endl<<num<<" is not a Perfect Number.";
   cout<<endl;
   return 0;
}

This program produces same output as of previous program.

Check Perfect Number using Function

This is the last program of this article, created using a user-defined function named check_per(). This function returns 1 if the number is a perfect number, otherwise returns 0.

#include<iostream>

using namespace std;

int check_per(int);
int main()
{
   int num, res;
   cout<<"Enter a Number: ";
   cin>>num;
   res = check_per(num);
   if(res==1)
      cout<<endl<<num<<" is a Perfect Number.";
   else
      cout<<endl<<num<<" is not a Perfect Number.";
   cout<<endl;
   return 0;
}
int check_per(int n)
{
   int i, s=0;
   for(i=1; i<n; i++)
   {
      if(n%i==0)
        s = s+i;
   }
   if(n==s)
        return 1;
   else
        return 0;
}

This program again does the same job as of previous program, and produces same output.

C++ Online Test


« C++ Tutorial C++ Example »



© Copyright 2021. All Rights Reserved.

CodesCracker