# C Program for factorial of a number

Factorial of a non-negative integer is multiplication of all integers smaller than or equal to n. For example factorial of 6 is 6*5*4*3*2*1 which is 720. Recursive:

 `// C program to find factorial of given number ` ` `  `#include ` ` `  `// Function to find factorial of given number ` `unsigned ``int` `factorial(unsigned ``int` `n) ` `{ ` `    ``if` `(n == 0) ` `        ``return` `1; ` `    ``return` `n * factorial(n - 1); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `num = 5; ` `    ``printf``(``"Factorial of %d is %d"``, ` `           ``num, factorial(num)); ` `    ``return` `0; ` `} `

Output:

```Factorial of 5 is 120
```

Iterative :

 `#include ` ` `  `// Function to find factorial of given number ` `unsigned ``int` `factorial(unsigned ``int` `n) ` `{ ` `    ``int` `res = 1, i; ` `    ``for` `(i = 2; i <= n; i++) ` `        ``res *= i; ` `    ``return` `res; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `num = 5; ` `    ``printf``(``"Factorial of %d is %d"``, ` `           ``num, factorial(num)); ` `    ``return` `0; ` `} `

Output:

```Factorial of 5 is 120
```

One line Solution (Using Ternary operator):

 `// C++ program to find factorial of given number ` ` `  `#include ` ` `  `int` `factorial(``int` `n) ` `{ ` `    ``// single line to find factorial ` `    ``return` `(n == 1 || n == 0) ` `               ``? 1 ` `               ``: n * factorial(n - 1); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `num = 5; ` `    ``printf``(``"Factorial of %d is %d"``, ` `           ``num, factorial(num)); ` `    ``return` `0; ` `} ` `// This code is contributed by  Rithika palaniswamy. `

Output:

```Factorial of 5 is 120
```

Using tgamma() method:

Example:

```Input: n = 4
Output: 24
```

Syntax:

```tgamma(n+1)=n!
It works upto 20! because c can't store large value
```

Implementation: use math.h header file for this

 `#include ` `#include ` ` `  `int` `main() ` `{ ` ` `  `    ``// use long long int ` `    ``// for larger values of n ` `    ``int` `n = 4; ` ` `  `    ``// tgamma(n+1)=n! ` `    ``n = tgamma(n + 1); ` ` `  `    ``printf``(``"%d"``, n); ` `    ``return` `0; ` `    ``// This code is contributed by Soumyadip Basak ` `} `

Output:

```24
```

The above solutions cause overflow for large numbers. Please refer factorial of large number for a solution that works for large numbers.

Please refer complete article on Program for factorial of a number for more details!

My Personal Notes arrow_drop_up