This program takes a positive integer from user and calculates the factorial of that number. Suppose, user enters 6 then,

Factorial will be equal to 1*2*3*4*5*6 = 720

You'll learn to find the factorial of a number using a recursive function in this example.

Visit this page to learn, how you can use loops to calculate factorial.

## Example: Calculate Factorial Using Recursion

```
#include<iostream>
using namespace std;
int factorial(int n);
int main() {
int n;
cout << "Enter a positive integer: ";
cin >> n;
cout << "Factorial of " << n << " = " << factorial(n);
return 0;
}
int factorial(int n) {
if(n > 1)
return n * factorial(n - 1);
else
return 1;
}
```

**Output**

Enter an positive integer: 6 Factorial of 6 = 720

In the above program, suppose the user inputs a number **6**. The number is passed to the `factorial()`

function.

In this function, **6** is multiplied to the factorial of (**6 - 1 = 5**). For this, the number **5** is passed again to the `factorial()`

function.

Likewise in the next iteration, **5** is multiplied to the factorial of (**5 - 1 = 4**). And, **4** is passed to the `factorial()`

function.

This continues until the value reaches **1** and the function returns **1**.

Now, each function returns the value back to compute `1 * 2 * 3 * 4 * 5 * 6 = 720`

, which is returned to the `main()`

function.

**Note**: This program does not work for numbers greater than **12**. This is because the factorials of these numbers is very large, and are thus beyond the range of values that can be stored in an `int`

type.

You can use `unsigned long`

as the return type for the `factorial()`

function, but it still won't be enough to get the factorial of most numbers.