C++ Program to Find Factorial (Using if-else statement)

by | Jan 20, 2023 | C++, C++ Programs

Home » C++ » C++ Programs » C++ Program to Find Factorial (Using if-else statement)


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

The factorial of a positive integer ‘x’ is 1*2*3*4*……..*x.

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 don’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. Data types

2. Operators

3. if-else statement

4. for loop


using namespace std;
int main()
int n;
cout<<"Enter a positive integer: ";

int fact=1; // fact to store factorial value

if(n<0) // if 'n' is negative
cout<<"Factorial of entered value doesn't exist.";
for( int i=1;i<=n;i++)

cout<<"Factorial of "<<n<<" is "<<fact;
return 0;




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

The user is asked to enter the value of ‘n’.

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

If the value of ‘n’ is less than 0, then the ‘if’ block will be executed.

Otherwise, the ‘else’ block will be executed.

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

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

‘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

At the end, when the value of ‘i’ reaches 6, then

fact=fact*i; will return 120*6=720

thus fact=720

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



Submit a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.