In this tutorial, we will write a Factorial Program in C++. Let us start by understanding what is factorial of a number.

**Factorial of n number**: Factorial of n number is the product of all the positive descending integers and is denoted by ** n!**. Also factorial of 0 and 1 is 1.

**Example:**

factorial of n (n!) = n * (n-1) * (n-2) * (n-3)….1

factorial of 5 (n!) = 5 * 4 * 3 * 2 * 1**NOTE**: Factorial of 0 (0!) = 1

We will write three different factorial programs in C++.

- using while loop
- using for loop
- using function

**C++ program to calculate factorial of a number**

The user needs to enter the number for which the factorial needs to be calculated. The calculation is done using a while loop in C++.

**Source code:** c++ program to find factorial of a number using **while loop**.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<iostream> using namespace std; int main() { int num, fact = 1, i = 1; cout << "Enter an Integer: "; cin >> num; //calculation while(i <= num) { fact = fact * i; i++ ; } cout << "\nThe Factorial of " << num <<": " << fact; return 0; } |

**Output:**

`Enter an Integer: 5`

The Factorial of 5: 120

**Factorial program in C++ using for Loop**

It is the same as the above, the only difference is we use **for loop** instead of while loop in the following program.

**Source code:**

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<iostream> using namespace std; int main() { int num, fact = 1, i = 1; cout << "Enter an Integer: "; cin >> num; //calculation for(i = 1; i <= num; i++) { fact *= i; } cout << "\nThe Factorial of " << num <<": " << fact; return 0; } |

**Output:**

`Enter an Integer: 4`

The Factorial of 4: 24

**Calculate the factorial of a number using function**

The program has a separate user-defined function that calculates the factorial of a number. The number entered by the user is passed as an argument to the function and after the calculation, the function returns the factorial value to the main function. The result is displayed on the main drive.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include<iostream> using namespace std; int factFunc(int n) { int i, fact = 1; for(i = n; i >= 1; i--) fact = fact*i; return fact; } int main() { int num, result; cout << "Enter an Integer: "; cin >> num; result = factFunc(num); cout << "\nThe Factorial of " << num <<": " << result; return 0; } |

**Output:**

`Enter an Integer: 6`

The Factorial of 6: 720