## Perfect Number in C

Any number can be the perfect number in C, if the sum of its positive divisors excluding the number itself is equal to that number.

For example, 6 is a perfect number in C because 6 is divisible by 1, 2, 3 and 6. So, the sum of these values is 1+2+3 = 6 (Remember, we have to exclude the number itself. That’s why we haven’t added 6 here). Some of the perfect numbers are 6, 28, 496, 8128 and 33550336 etc

In this article, we will show you, how to write a C Program to find Perfect Number Using For Loop and While loop. We also find the Perfect Numbers between 1 and 100 with examples.

## C Program to find Perfect Number using For Loop

This perfect number in C program allows the user to enter any number. Using this number, it will calculate whether the number is a Perfect number or not using the For Loop.

/* C Program to find Perfect Number using For Loop */ # include <stdio.h> int main() { int i, Number, Sum = 0 ; printf("\n Please Enter any number \n") ; scanf("%d", &Number) ; for(i = 1 ; i < Number ; i++) { if(Number % i == 0) Sum = Sum + i ; } if (Sum == Number) printf("\n %d is a Perfect Number", Number) ; else printf("\n%d is not the Perfect Number", Number) ; return 0 ; }

**OUTPUT**

**ANALYSIS**

In this C perfect number program, we declared 3 integer variables i, Number and Sum = 0.

Below printf statement will ask the user to enter any positive integer value

printf("\n Please Enter any number \n") ;

Below scanf statement will assign the user entered a value to the Number variable

scanf("%d", &Number) ;

In the next line, we have for loop. The condition inside the for loop (i < Number) will make sure to not exceed i value more than number.

for(i = 1 ; i < Number ; i++) { if(Number % i == 0) Sum = Sum + i ; }

If Condition inside the for loop will check whether the Number is Perfectly divisible by i value or not. Please refer If Statement in C article to understand the If statement

- If the Number is perfectly divisible by i then i value will be added to the Sum
- If the Number is not divisible by i then i value will be incremented by 1 and check for next value

From the above Screenshot of this perfect number in c, User Entered value is: Number = 6

**First Iteration**

For the first Iteration, Number = 6, Sum = 0 and i = 1

If (Number % i == 0)

6 % 1 == 0

If statement is succeeded here So,

Sum = Sum + i

Sum = 0 +1 = 1

**Second Iteration**

From the second Iteration the values of both Sum and i has been changed as: Sum = 1 and i = 2

If (Number % i == 0)

6 % 2 == 0

If statement is succeeded here So,

Sum = Sum + i

Sum = 1 + 2 = 3

**Third Iteration**

From the third Iteration of c program to find perfect number, the values of both Sum and i has been changed as: Sum = 3 and i = 3

If (Number % i == 0)

6 % 3 == 0

If statement is succeeded here So,

Sum = Sum + i

Sum = 3 + 3 = 6

For the fourth and fifth iterations of the perfect number in c program, the condition inside the if condition will fail

6 % 4 == 0 (FALSE)

6 % 5 == 0 (FALSE)

For the sixth iteration, value of i become 6 which means the condition inside the for loop will fail (6 < 6). So, compiler will terminate the for loop.

In the next line we have If condition to check whether the value inside the Sum variable is exactly equal to given Number or Not.

If the condition (Sum == Number) is TRUE then below printf statement will be executed

printf("\n %d is a Perfect Number", Number) ;

If the condition (Sum == Number) is FALSE then below printf statement will be executed

printf("\n %d is not the Perfect Number", Number) ;

For this example (Sum == Number) is True. So, given Number is Perfect Number in C programming

## C Program to find Perfect Number using While Loop

This perfect number in c program allows the user to enter any number. Using this number it will calculate whether the user input is a Perfect number or not using While loop in C.

/* C Program to find Perfect Number using While Loop */ # include <stdio.h> int main() { int i = 1, Number, Sum = 0 ; printf("\n Please Enter any number \n") ; scanf("%d", &Number) ; while( i < Number ) { if(Number % i == 0) Sum = Sum + i ; i++; } if (Sum == Number) printf("\n %d is a Perfect Number", Number) ; else printf("\n%d is not the Perfect Number", Number) ; return 0 ; }

We haven’t done anything special in this example. We just replaced the For loop in the first program for perfect number in C with While Loop. If you find difficult to understand the While loop functionality then please refer While Loop in C article.

**OUTPUT**

## C Program to Find Perfect Number between 1 to 1000

This program for perfect number in C allows the user to enter a minimum and maximum values. This C program find Perfect Number between the Minimum and Maximum values.

/* C Program to Find Perfect Number between 1 to 1000 */ #include <stdio.h> int main() { int Number, Sum, i, Minimum, Maximum; printf("\n Please Enter the Minimum & Maximum Values\n"); scanf("%d %d", &Minimum, &Maximum); printf("Perfect Numbers Between %d and %d are:\n", Minimum, Maximum); for(Number=Minimum; Number<=Maximum; Number++) { for(i = 1, Sum =0 ; i < Number ; i++) { if(Number % i == 0) Sum = Sum + i ; } if (Sum == Number) printf(" %d ", Number) ; } return 0; }

**OUTPUT**

**ANALYSIS**

for (Number=Minimum; Number<=Maximum; Number++)

The For Loop in this perfect number in c helps the compiler to iterate between Minimum and Maximum Variables, iteration starts at the Minimum and then it will not exceed Maximum variable.

Inside the for loop, we are checking whether that number is a perfect number or not. We already explained the for loop iteration in the first example of the C perfect number.

Thank You for Visiting Our Blog