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. Here is the program:

// Write a program in C to accept a Number from user
// and check whether it is a Perfect Number or Not.
// For example, 6 (3+2+1). Here 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
// -----------codescracker.com-----------

#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:

C Program to Print all Perfect Number

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:

// Write a program in C to print all Perfect number
// between any two number say n1 and n2
// -----------codescracker.com-----------

#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 Tutorial C Examples »






Tools
Calculator

Quick Links
Signup - Login - Give Online Test