# C++ Program to Find Factorial of a Number

Here is a C++ program to calculate factorial of a number using for loop. Factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n. Factorial is undefined for negative numbers and factorial of 0 is equal to 1. The n! represents the number of ways to arrange n distinct objects into a sequence.

N! = N*(N-1)*(N-2)..... 4*3*2*1

## C++ program to find factorial of a number using loop

```#include <iostream>

using namespace std;

int main(){
int N, factorial = 1, i;
cout << "Enter a number for factorial calculation\n";
cin >> N;
/*
* N! = N*(N-1)*(N-2)*(N-3)*.....*3*2*1
*/
for(i = 1; i <= N; i++){
factorial = factorial * i;
}
cout << "Factorial of " << N << " is " << factorial;

return 0;
}
```
Output
```Enter a number for factorial calculation
4
Factorial of 4 is 24
```
```Enter a number for factorial calculation
0
Factorial of 0 is 1
```

## C++ program to find factorial of a number using recursion

We can use recursion to calculate factorial of a number because factorial calculation obeys recursive sub-structure property. Let getFactorial(N) is a function to calculate and return value of N!. To find getFactorial(N) we can first calculate getFactorial(N-1) then multiply it with N.
N! = 1 x 2 x 3 x 4....x (N-2) x (N-1) x N
N! = (N-1)! x N

getFactorial(N) = getFactorial(N-1) x N

Function getFactorial(N) reduces the problem of finding factorial of a number N into sub-problem of finding factorial on N-1. It keeps on reducing the domain of the problem until N becomes zero.

```#include <iostream>

using namespace std;

int getFactorial(int N);

int main(){
int N;
cout << "Enter a Number\n";
cin >> N;

cout << "Factorial of " << N << " = " << getFactorial(N);

return 0;
}

// Recursive function to find factorial of a number

int getFactorial(int N){
// Recursion Termination condition
if(N <= 1){
return 1;
}
return N * getFactorial(N - 1);
}
```
Output
```Enter a Number
7
Factorial of 7 = 5040
```

Recommended Posts
 C++ program to Find Factorial of a Number Using Recursion C++ Program to Find Power of a Number C++ Program to check Whether a Number is Palindrome or Not C++ Program to Check Prime Number C++ Program to Display Factors of a Number C++ program to Check Whether a Number can be Split into Sum of Two Prime Numbers C++ Program to Check for Armstrong Number C++ Program to Find All Square Roots of a Quadratic Equation C++ Program to Find LCM and GCD of Two Numbers C++ Program to Find Quotient and Remainder All C++ Programs