# C++ Program to Check Perfect Number

In this post, we will learn how to check the perfect number using C++ Programming language.

A Perfect number is a positive integer that is equal to the sum of its positive divisors, excluding the number itself. For example: The divisors of 6 are 1, 2 and 3 such that 1 + 2 + 3 = 6. Hence, 6 is a perfect number.

We will be using following methods to check a perfect number:

1. Using for loop
2. Using while loop
3. Using functions

So, without further ado, let’s begin this tutorial.

## C++ Program to Check Perfect Number

```// C++ Program to Check Perfect Number
#include <iostream>
using namespace std;

int main(){
int i, num, sum = 0;

cout << "Enter any number: ";
cin >> num;

// Calculating sum of factors
for (i = 1; i < num; i++){
if (num % i == 0){
sum = sum + i;
}
}

// Checking perfect number
if (num == sum){
cout << num << " is a perfect number.";
}
else{
cout << num << " is not a perfect number.";
}
return 0;
}
```

Output 1

``````Enter any number: 6
6 is a perfect number.
``````

Output 2

``````Enter any number: 12
12 is not a perfect number.
``````

## How Does This Program Work ?

```    int i, num, sum = 0;
```

In this program, we have declared three int data type variables named i, num and sum.

```    // Asking for input
cout << "Enter any number: ";
cin >> num;
```

Now, the user is asked to enter any positive number.

```    // Calculating sum of factors
for (i = 1; i < num; i++){
if (num % i == 0){
sum = sum + i;
}
}
```

We calculate the sum of all the divisors of the entered number.

```    if (num == sum){
cout << num << " is a perfect number.";
}
else{
cout << num << " is not a perfect number.";
}
```

Now, we check whether the sum of divisors is equal to the number itself or not. If yes, then the entered number is a perfect number otherwise the entered number is not a perfect number.

## C++ Program to Check Perfect Number Using While Loop

```// C++ Program to Check Perfect Number Using While Loop
#include <iostream>
using namespace std;

int main(){
int i = 1, sum = 0, num;

cout << "Enter any number: ";
cin >> num;

// Calculating the sum of divisors
while (num > i){
if (num % i == 0){
sum = sum + i;
}
i++;
}

// Checking perfect number
if (num == sum){
cout << num << " is a perfect number.";
}
else{
cout << num << " is not a perfect number.";
}
return 0;
}
```

Output 1

``````Enter any number: 28
28 is a perfect number.
``````

Output 2

``````Enter any number: 32
32 is not a perfect number.
``````

## C++ Program to Check Perfect Number Using Functions

```// C++ Program to Check Perfect Number
#include <iostream>
using namespace std;

int perfect(int num){
int i = 1, sum = 0;
while (num > i){
if (num % i == 0)
sum = sum + i;
i++;
}
return(sum);
}

int main(){
int result, num;

cout << "Enter a positive number: ";
cin >> num;

result = perfect(num);

// Checking perfect number
if (num == result){
cout << num << " is a perfect number.";
}
else{
cout << num << " is not a perfect number.";
}
return 0;
}
```

Output 1

``````Enter any number: 496
496 is a perfect number.
``````

Output 2

``````Enter any number: 469
469 is not a perfect number.
``````

## Conclusion

I hope after going through this post, you understand how to check the perfect number using C++ Programming language.

If you have any doubt regarding the program, feel free to contact us in the comment section. We will be delighted to guide you.