C program to check if a number is a perfect number or not

C program to check if a number is a perfect number or not :

In this tutorial, we will learn how to find if a number is perfect or not by using C programming language. A positive number is called a perfect number if the sum of its proper positive divisors is equal to the number. For example, 6 is a perfect number. Because : Its proper divisors from 1 to 5 are 1, 2, and 3. Sum is 1 + 2 + 3 = 6 which is equal to the number itself. So, it is a perfect number. Let’s take a look at the program :

C program :

#include <stdio.h>

int main()
{
    //1
    int no;
    int sum = 0;
    int divisor = 1;

    //2
    printf("Enter the number : ");
    scanf("%d", &no);

    //3
    for (divisor = 1; divisor < no; divisor++)
    {
        //4
        if (no % divisor == 0)
        {
            sum += divisor;
        }
    }

    //5
    if (sum == no)
    {
        printf("%d is a perfect number", no);
    }
    else
    {
        printf("%d is not a perfect number", no);
    }
}

Explanation :

The commented numbers in the above program denote the step number below :

  1. Create one integer variable no to store the number, one variable sum to store the sum of all perfect divisors and one more variable divisor that indicate the current divisor.
  2. Ask the user to enter a number. Read it and save it in variable no.
  3. Run one for-loop. This loop will run from divisor = 1 to divisor = no - 1.
  4. Check if the current divisor is perfect-divisor or not, i.e. if the divisor divides the number, the remainder should be 0. If it is a perfect-divisor, add its value to sum.
  5. Finally, check if the sum is equal to the original number or not. If yes, it is a perfect number, else it is not. Print out the message to the user.

Sample Output :

Enter the number : 567
567 is not a perfect number

Enter the number : 6
6 is a perfect number

Enter the number : 8128
8128 is a perfect number

Enter the number : 496
496 is a perfect number

Enter the number : 28
28 is a perfect number