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

Write a C program to enter any number and check whether the number is Perfect number or not. How to check perfect numbers in C program using loop. Perfect number program in C.

Example:
Input number: 6
Output: 6 is perfect number

Required knowledge

Basic C programming, For loop, If else

Perfect number

A perfect number is a positive integer which is equal to the sum of its proper positive divisors. For example: 6 is the first perfect number
Proper divisors of 6 are 1, 2, 3
And 1+2+3 = 6. Hence 6 is a perfect number

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;

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

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

    /* Checks whether the sum of proper divisors is equal to num */
    if(sum == num)
    {
        printf("\n%d is a Perfect number", num);
    }
    else
    {
        printf("\n%d is not a Perfect number", num);
    }

    return 0;
}


Output
Enter any number to check perfect number: 6

6 is a Perfect number

Happy coding ;)


Any doubt or suggestion write here. I will try my best to help. Before posting your code you must escape it to view. To format your source code and use format highlighting, post your source code inside
< code >< pre > -- Your source code -- < /pre >< /code > (Remove spaces from pre and code tags).

1 comment: