Select Page

# C Program to Find Factorial of a Number (Using if-else statement)

by | Jan 21, 2023 | C, C Programs

Home » C » C Programs » C Program to Find Factorial of a Number (Using if-else statement)

## Introduction

In this program, you will learn to calculate the factorial of a number.

A particular value will be entered by the user, and then through this program, we will compute its factorial.

For example, Factorial of 5 is (! is the symbol for factorial):

5! =5*4*3*2*1=120

Similarly, Factorial of 7 is

7! =7*6*5*4*3*2*1=5040

Factorial of negative numbers doesn’t exist.

Factorial of 0 and 1 is 1.

What is the use of this program?

It is easy to calculate the factorial up to certain values, but it is difficult to calculate factorial like 100! , 500! etc. A small code written in C will make this task quite easy.

To understand this example, you should know about the following C programming topics:

1. C data types

2. Operators in C

3. if-else statement

4. for loop

## Program

```#include<stdio.h>

int main()

{

int x;

printf("Enter an integer:\n");

scanf("%d",&x);

int fact=1;

if(x>0) // x is a positive integer

{

for (int i=1; i<=x; i++)

{

fact=fact*i; // fact is updated when value of i is multiplied in it

}

printf("Factorial of %d is %d",x,fact);

}

else if(x==0) // x is 0

{

printf("Factorial of %d is 1",x);

}

else // x is a negative integer

{

printf("Factorial does not exist");

}

return 0;

}```

## Output ## Explanation

In the above program, we have to calculate the factorial of ‘x’.

Now we have three conditions, either ‘x’ is a positive integer or ‘x’ is 0 or ‘x’ is a negative integer. if-else statements are used to check all these conditions.

If the value of ‘x’ is greater than 0 then the ‘if’ block will be executed.

for (int i=1; i<=x; i++)

‘i’ will start from 1 and iterate until it reaches ‘x’.

‘fact’ variable is initialized with 1. When the value of ‘i’ is 1, the statement

fact=fact*i; will return 1*1=1

Thus, fact=1

‘i’ is incremented and now its value is 2

fact=fact*i; will return 1*2=2

Thus, fact=2

i’ is incremented and now its value is 3

fact=fact*i; will return 2*3=6

Thus, fact=6

In the end when the value of ‘i’ reaches 10 then

fact=fact*i; will return 362880*10=3628800

thus fact=3628800

now ‘i’ is updated to 11 which will terminate the loop.

## Author

• A Full Stack Developer with 10+ years of experience in technical content creation.

• 