Perfect Number Program in C

# Perfect Number Program in C

## Logic to check Perfect number

Step by step descriptive logic to check Perfect number.

1. Input a number from user. Store it in some variable say num.
2. Initialize another variable to store sum of proper positive divisors, say `sum = 0`.
3. Run a loop from 1 to `num/2`, increment 1 in each iteration. The loop structure should look like `for(i=1; i<=num/2; i++)`.Why iterating from 1 to `num/2`, why not till num? Because a number does not have any proper positive divisor greater than `num/2`.
4. Inside the loop if current number i.e. i is proper positive divisor of num, then add it to sum.
5. Finally, check if the sum of proper positive divisors equals to the original number. Then, the given number is Perfect number otherwise not.

## Program to check perfect number

``````/**
* C program to check whether a number is Perfect number or not
*/

#include <stdio.h>

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

/* Input a number from user */
printf("Enter any number to check perfect number: ");
scanf("%d", &num);

/* Calculate sum of all proper divisors */
for(i = 1; i <= num / 2; i++)
{
/* If i is a divisor of num */
if(num%i == 0)
{
sum += i;
}``````