codescracker
c

C Program to Check given Number is Perfect Number or Not



« C Tutorial C Examples »

In this tutorial, we will learn about how to create a program in C that will ask from user to enter any number (at run-time) as input to check whether the given number is a perfect number or not. A perfect number is a number in which, factor's sum is equals to the Number itself.

Check Perfect Number or Not in C

The question is, write a program in C that checks whether a given number is a perfect number or not. The program given below is its answer. 6 is a perfect number because 1, 2, and 3 are the three factors of 6 and after summing it up, you will get the same number itself as in case of 6:

#include<stdio.h>
#include<conio.h>
int main()
{
    int num, sum=0, i;
    printf("Enter any number: ");
    scanf("%d", &num);
    for(i=1; i<num; i++)
    {
        if(num%i == 0)
            sum = sum + i;
    }
    if(num == sum)
        printf("\nIt's a Perfect Number.");
    else
        printf("\nIt's not a Perfect Number.");
    getch();
    return 0;
}

The above program was build and run under Code::Blocks IDE, here is the output. This is first snapshot of the sample run:

c program check perfect number

Supply any number say 6 and press ENTER key to see that the given number is a perfect number or not. This is the second snapshot of the sample run:

c program perfect number or not

Let's check for another number say 24. Here is the sample run in case of 24 (as input):

check perfect number or not

As the factor of 24 is 1, 2, 3, 4, 6, 8, 12 and if you will find the sum of all these factors, that is 1+2+3+4+6+8+12 is equal to 36 which is not equal to the number itself (24 here). Therefore, according to the definition of perfect number given here, 24 is not a perfect number.

Below are the list of some main steps used in above program:

Print all Perfect Number in given Range in C

Here is another program on perfect number. This program will ask from the user to enter any two number as starting and ending number or point to check and print all the perfect number exists in between the given two number:

#include<stdio.h>
#include<conio.h>
int main()
{
    int n1, n2, i, j, sum, temp;
    printf("Enter the value of n1 (starting point): ");
    scanf("%d", &n1);
    printf("Enter the value of n2 (ending point): ");
    scanf("%d", &n2);
    printf("\nPerfect numbers between %d to %d are:\n", n1, n2);
    for(i=n1; i<=n2; i++)
    {
        temp = i;
        sum = 0;
        for(j=1; j<i; j++)
        {
            if(i%j==0)
            {
                sum = sum + j;
            }
        }
        if(temp==sum)
        {
            printf("%d\n", sum);
        }
    }
    getch();
    return 0;
}

Here is the first snapshot of the sample run:

print all perfect number c

Supply any two number say 1 as starting and 1000 as ending to see all the perfect number exists between these two number. Here is the second snapshot of the sample run:

find all perfect number c

C Online Test


« C Tutorial C Examples »



© Copyright 2021. All Rights Reserved.

CodesCracker