# Perfect Number Program Example using CPP

- Home
- Tutorials
- CPP
- CPP Programs
- For Loop
- Program

## Source Code:

#include <iostream>

**using namespace** std;

/*

Number is called Perfect iff

Sum of its factors is equal to number itself

eg:

6 = 1 + 2 + 3 where 1,2,3 are factors of 6. i <= n/2

Some examples of perfect numbers are 6,28,496,8128,.....

*/

**int** main(**int** argc, **char**** argv) {

// Declaration of variables

**int** num; // used for taking input.

**int** sum = 0; // used to store sum of factors.

**int** i; // counter variable

// Taking input in variable num

cout<<"Enter Number: ";

cin>>num;

// Finding factors of given number

**for**(i = 1; i <= num/2; i++) {

// Checking factor of num

**if**(num % i == 0) {

sum = sum + i; // we can also use sum++

}

}

// checking perfect number

**if**(sum == num) { // If true number is perfect

cout<<"Number is Perfect";

} **else** {

cout<<"Number is Not Perfect";

}

**return** 0;

}

## Output:

## Working:

Every number whose sum of factors is equal to itself is called perfect number. 6 is the smalles perfect number. Furthermore some other perfect numbers are 28, 496, 8128,.......

Let a number N then sum of its factors from 1 to N-1 if equal to N then N is perfect number

In this program example we declare the following variables to implement the logic of program.

Sr |
Identifier |
Type |
Description |

1 | num | int | This variable is used to store user input. |

2 | sum | int | sum variable will accumulate factors. |

3 | i | int | i is counter variable used in for loop. |

After declaration process for loop is used from 1 to N/2, The reason to iterate upto N/2 is that the numbers greater than N/2 will never factors of N. So that we save extra iterations. In every iteration we check either provided counter variable of loop is factor or not using if condition and modulus operator. IF the counter variable is factor then it will add to the sum variable.

Finally we check either sum of factors is equal to provided input number. If this condition is true then it means this number is perfect number otherwise we will print Number is not a perfect number using cout statement.

This program is compiled and tested using **Dev-C++** code editor.

## Smallest Perfect Number:

Smallest perfect number is 6. We can also check other perfect numbers using the program discussed above.

## Perfect Number Examples:

Some examples of perfect numbers are 6, 28, 496, 8128,......