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.

    Learn - Program to check divisibility of a number.

  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;
        }