In this tutorial you will learn about the C Program to Check Number is Perfect Or Not and its application with practical example.
In this tutorial, we will learn to create a C program that will find Perfect Number using C programming.
Prerequisites
Before starting with this tutorial we assume that you are best aware of the following C programming topics:
-
- C Operators.
- Loop statements.
- For Loop.
- Basic input/output.
What Is Perfect Number?
Perfect number is a positive integer number,that equals to sum of its positive divisors not include the number itself is equal to that number.
Example
Divisor of 6 are 1,2 and 3. and sum of these are (1+2+3=6). So we can say that 6 is a perfect number in which we will not induced 6 i.e exclude 6 .So number is called perfect when divisor of number added and that create the number itself called Perfect number.
C Program to Check Whether Number is Perfect Or Not
So here we are going to create a program in which we take a value from user and we will find the given number is perfect or not? By method using adding all divisors of a number.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# include <stdio.h> int main() { int i,no,sum = 0 ; //declaring variable printf("\nEnter any number \n") ; scanf("%d", &no) ; // taking value from user for(i = 1 ; i < no ; i++) // iteration till number { if(no % i == 0) // checking complete divisibility condition sum = sum + i ; // add if divisible } if (sum == no) // if both are equal... printf("\n Given Number %d is a Perfect Number", no) ; else printf("\nGiven Number %d is not the Perfect Number", no) ; return 0 ; } |
Output
Perfect number.
Not a perfect number.
In the above program, we have first declared and initialized a set variables required in the program.
- no = holding given number
- sum= adding all divisor.
- i = for iteration of a loop.
Explanation of program, First we take the integer value in ‘no’ variable. So the condition is that A Perfect number is a number which is equal to sum of its divisor.
Example, 6’s divisor are 1, 2 and 3. and there sum is (1+2+3=6) ,the divisors of 6. So the number 6 is called as perfect number.
From the above image of a perfect number in c,Suppose user entered value is: no = 6
Step by step explanation for loop is here.
In 1st Iteration…
Number is no= 6, sum = 0 and loop start at i = 1.
If (no % i == 0) // if( 6%1== 0 ) true.
here number is complete divisible So,
sum = sum + i // sum= 0 + 1 =1.
Now,Second Iteration..
Values of sum and i has altered as sum = 1 and i = 2.
If (no % i == 0) // if( 6 %2 ==0 ) true.
sum = sum + i // sum = 1 + 2 = 3.
Third Iteration.
Again the values of both sum and i has altered as sum = 3 and i = 3
If (6 % 3 == 0) // if( 6%3==0) true.
sum = sum + i //sum = 3 + 3 = 6.
Next fourth and fifth iterations ,condition inside the if will fail
6 % 4 == 0 (FALSE)
6 % 5 == 0 (FALSE)
In next iteration, the value of i becomes 6, So (6 < 6) false . So, the compiler will terminate the for loop.
Then, we check whether the value of sum is exactly equal to the no or Not.
If it is TRUE, the below print f statement will execute. else print f statement will execute.