# Factorial Program in C Using While Loop

Before looking into the mechanism of factorial program, first, you have to understand about the working of a while loop.

### While Loop

The syntax that has been used for the “while” loop in C programming language is:

``````while (termination condition) {
// the body of the loop
}
``````

### Working of While Loop

Initially, we use the parentheses for storing the termination condition of the While loop.

Then, there can be two outcomes True or False.

Firstly, if the result is true, then the control will automatically execute the body of the loop. It will continue to evaluate again and again until the termination condition is false.

Secondly, if the result is false, then the control will definitely come out of the While loop and will dismiss the While Loop.

Now, we are going to understand how the factorial of any positive integer is evaluated or calculated using C language.

### While loop program in c programming language to find factorial of an entered integer:

With the help of below mentioned example you can easily come to know about the method of calculating of a positive integer provided by the user.

The following formula is used for calculating the factorial of an inputted positive integer ‘n’:

factorial of “n” or (n!) = 1 * 2 * 3 * 4....n

If we talk about the factorial value of 0 is always 1 and the factorial of any negative integer does not exist.

Following Program calculates the Factorial of a natural number using while loop in C programming language:

``````#include<stdio.h>
int main()
{
int a, b=1, c=1; // declaring various variables and initializing values of b and c as 1, 1 simultaneously
printf("Enter the natural number whose factorial you want to print:\n"); // taking a value as input from the user
scanf("%d", &a); // assigning the value entered by the user to a
// providing termination condition so that we can avoid loop from running to infinity
while(b<=a) // initializing loop for calculating the factorial of a positive integer provided by the user as an input
{
c=c*b; // main body of the while loop that is to be executed until it the loop gets terminated because of the false value retained by the execution of termination condition
b++;
}
printf("The factorial of the given number %d is as follow %d", a, c); // printing the output
return 0;
}
``````

Output:

``````Enter the natural number whose factorial you want to print:
5
The factorial of the given number 6 is as follow 720
``````

Explanation:

Initially, the system will let the user to enter any positive integer and assign the entered number to the variable ‘a’.

After that, the code will multiply the values of ‘b’ with the value of ‘c’ with the help of ‘while’ loop.  This ‘while’ loop will execute the multiplication until the value of ‘b’ does not equal to the value of ‘a’.

And, at last, the program will automatically print the factorial value of the given number after the termination of while loop.

### Step by Step explanation of the factorial values during the execution of the program:

Let us begin with the positive integer 6 which is entered by the user as an input.

Now, the values of a, b, c are 6, 1, and 1.

After that, the ‘while’ loop will start the execution until the termination condition returns false value.

Case 1: b<=n (1<=6), here, the termination condition of while loop returns True boolean value, and the control moves to the following statements of while body:

c=c*b (c=1*1)    so, c=1

b++ (b=b+1)    so, b=2

Case 2: b<=a (2<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=1*2)    so, c=2

b++ (b=b+1)    so, b=3

Case 3: b<=n (3<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=2*3)    so, c=6

b++ (b=b+1)    so, b=4

Case 4: b<=n (4<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=6*4)    so, c=24

b++ (b=b+1)    so, b=5

Case 5: b<=n (5<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body:

c=c*b (c=24*5)    so, c=120

b++ (b=b+1)    so, b=6

Case 6: b<=n (6<=6), here, the termination condition of while loop returns also True boolean value, and the control moves to the following statements of while body.

c=c*b (c=120*6)    so, c=720

b++ (b=b+1)    so, b=7

Case 7: b<=n (7<=6), here, the termination condition of while loop returns False boolean value. So, the control goes out from the while loop and print the 720 in the output console on the screen.

Output:

``````Enter the natural number whose factorial you want to print:
6
The factorial of the given number 6 is as follow 720
``````