Related Articles
C Program for factorial of a number
• Last Updated : 07 Aug, 2019

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!

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.

My Personal Notes arrow_drop_up