# Program for factorial of a number

• Difficulty Level : Basic
• Last Updated : 10 Sep, 2021

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. Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

Recursive Solution:
Factorial can be calculated using following recursive formula.

```  n! = n * (n-1)!
n! = 1 if n = 0 or n = 1```

Following is implementation of factorial.

## C++

 `// C++ program to find factorial of given number``#include ``using` `namespace` `std;` `// 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;``    ``cout << ``"Factorial of "``         ``<< num << ``" is "` `<< factorial(num) << endl;``    ``return` `0;``}` `// This code is contributed by Shivi_Aggarwal`

## C

 `// C program to find factorial of given number``#include

## Java

 `// Java program to find factorial of given number``class` `Test {``    ``// method to find factorial of given number``    ``static` `int` `factorial(``int` `n)``    ``{``        ``if` `(n == ``0``)``            ``return` `1``;` `        ``return` `n * factorial(n - ``1``);``    ``}` `    ``// Driver method``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `num = ``5``;``        ``System.out.println(``"Factorial of "` `+ num``                           ``+ ``" is "` `+ factorial(``5``));``    ``}``}`

## Python3

 `# Python 3 program to find``# factorial of given number` `# Function to find factorial of given number``def` `factorial(n):``     ` `    ``if` `n ``=``=` `0``:``        ``return` `1``    ` `    ``return` `n ``*` `factorial(n``-``1``)`` ` `# Driver Code``num ``=` `5``;``print``(``"Factorial of"``, num, ``"is"``,``factorial(num))`` ` `# This code is contributed by Smitha Dinesh Semwal`

## C#

 `// C# program to find factorial``// of given number``using` `System;` `class` `Test {``    ``// method to find factorial``    ``// of given number``    ``static` `int` `factorial(``int` `n)``    ``{``        ``if` `(n == 0)``            ``return` `1;` `        ``return` `n * factorial(n - 1);``    ``}` `    ``// Driver method``    ``public` `static` `void` `Main()``    ``{``        ``int` `num = 5;``        ``Console.WriteLine(``"Factorial of "``                          ``+ num + ``" is "` `+ factorial(5));``    ``}``}` `// This code is contributed by vt_m`

## PHP

 ``

## Javascript

 ``

Output:

`Factorial of 5 is 120`

Iterative Solution:
Factorial can also be calculated iteratively as recursion can be costly for large numbers. Here we have shown the iterative approach using both for and while loop.
Using For loop

## C++

 `// C++ program for factorial of a number``#include ``using` `namespace` `std;` `// 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;``    ``cout << ``"Factorial of "``         ``<< num << ``" is "``         ``<< factorial(num) << endl;``    ``return` `0;``}` `// This code is contributed by Shivi_Aggarwal`

## C

 `#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;``}` `int` `main()``{``    ``int` `num = 5;``    ``printf``(``        ``"Factorial of %d is %d"``, num, factorial(num));``    ``return` `0;``}`

## Java

 `// Java program to find factorial of given number``class` `Test {` `    ``// Method to find factorial of the given number``    ``static` `int` `factorial(``int` `n)``    ``{``        ``int` `res = ``1``, i;``        ``for` `(i = ``2``; i <= n; i++)``            ``res *= i;``        ``return` `res;``    ``}` `    ``// Driver method``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `num = ``5``;``        ``System.out.println(``            ``"Factorial of "` `+ num``            ``+ ``" is "` `+ factorial(``5``));``    ``}``}`

## Python3

 `# Python 3 program to find``# factorial of given number` `# Function to find factorial of given number``def` `factorial(n):``     ` `    ``res ``=` `1``    ` `    ``for` `i ``in` `range``(``2``, n``+``1``):``        ``res ``*``=` `i``    ``return` `res` `# Driver Code``num ``=` `5``;``print``(``"Factorial of"``, num, ``"is"``,``factorial(num))`` ` `# This code is contributed by Smitha Dinesh Semwal`

## C#

 `// C# program to find``// factorial of given number``using` `System;` `class` `Test {``    ``// Method to find factorial``    ``// of given number``    ``static` `int` `factorial(``int` `n)``    ``{``        ``int` `res = 1, i;` `        ``for` `(i = 2; i <= n; i++)``            ``res *= i;``        ``return` `res;``    ``}` `    ``// Driver method``    ``public` `static` `void` `Main()``    ``{``        ``int` `num = 5;``        ``Console.WriteLine(``            ``"Factorial of "` `+ num``            ``+ ``" is "` `+ factorial(5));``    ``}``}` `// This code is contributed by vt_m`

## PHP

 ``

## Javascript

 ``

Output :

`Factorial of 5 is 120`

Using While loop

## C

 `// C program for factorial of a number``#include ` `// function to find factorial of given number``unsigned ``int` `factorial(unsigned ``int` `n)``{``     ``if``(n == 0)``          ``return` `1;``    ``int` `i = n, fact = 1;``    ``while` `(n / i != n) {``        ``fact = fact * i;``        ``i--;``    ``}``    ``return` `fact;``}` `int` `main()``{``    ``int` `num = 5;``    ``printf``(``"Factorial of %d is %d"``, num, factorial(num));``    ``return` `0;``}`

## C++

 `// C++ program for factorial of a number``#include ``using` `namespace` `std;` `// function to find factorial of given``// number using while loop``unsigned ``int` `factorial(unsigned ``int` `n)``{``    ``if``(n == 0)``          ``return` `1;``    ``int` `i = n, fact = 1;``    ``while` `(n / i != n) {``        ``fact = fact * i;``        ``i--;``    ``}``    ``return` `fact;``}` `// Driver code``int` `main()``{``    ``int` `num = 5;``    ``cout << ``"Factorial of "``         ``<< num << ``" is "``         ``<< factorial(num) << endl;``    ``return` `0;``}``// This code is contributed by Shivi_Aggarwal`

## Java

 `// Java program to find factorial of given number` `class` `Test {` `    ``// Method to find factorial of the given number``    ``static` `int` `factorial(``int` `n)``    ``{``        ``if``(n == ``0``)``           ``return` `1``;``        ``int` `i = n, fact = ``1``;``        ``while` `(n / i != n) {``            ``fact = fact * i;``            ``i--;``        ``}``        ``return` `fact;``    ``}` `    ``// Driver method``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `num = ``5``;``        ``System.out.println(``            ``"Factorial of "` `+ num``            ``+ ``" is "` `+ factorial(``5``));``    ``}``}`

## Python3

 `# Python 3 program to find``# factorial of given number` `# Function to find factorial of given number``def` `factorial(n):``    ``if``(n ``=``=` `0``):``       ``return` `1``    ``i ``=` `n``    ``fact ``=` `1``    ` `    ``while``(n ``/` `i !``=` `n):``        ``fact ``=` `fact ``*` `i``        ``i ``-``=` `1``        ` `    ``return` `fact` `# Driver Code``num ``=` `5``;``print``(``"Factorial of"``, num, ``"is"``,``factorial(num))`` ` `# This code is contributed by Smitha Dinesh Semwal`

## C#

 `// C# program to find``// factorial of given number``using` `System;` `class` `Test {``    ``// Method to find factorial``    ``// of given number``    ``static` `int` `factorial(``int` `n)``    ``{``        ``if``(n == 0)``            ``return` `1;``        ``int` `i = n, fact = 1;``        ``while` `(n / i != n) {``            ``fact = fact * i;``            ``i--;``        ``}``        ``return` `fact;``    ``}` `    ``// Driver method``    ``public` `static` `void` `Main()``    ``{``        ``int` `num = 5;``        ``Console.WriteLine(``            ``"Factorial of "` `+ num``            ``+ ``" is "` `+ factorial(5));``    ``}``}`

## Javascript

 ``

Output :

`Factorial of 5 is 120`

Time complexity of the above iterative solutions is O(n).
One line Solution (Using Ternary operator):

## C++

 `// C++ program to find factorial of given number``#include ``using` `namespace` `std;` `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;``    ``cout << ``"Factorial of "` `<< num << ``" is "``<< factorial(num);``    ``return` `0;``}` `// This code is contributed by shivanisinghss2110`

## C

 `// 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.`

## Java

 `// Java program to find factorial``// of given number``class` `Factorial {` `    ``int` `factorial(``int` `n)``    ``{` `        ``// single line to find factorial``        ``return` `(n == ``1` `|| n == ``0``) ? ``1` `: n * factorial(n - ``1``);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String args[])``    ``{``        ``Factorial obj = ``new` `Factorial();``        ``int` `num = ``5``;``        ``System.out.println(``            ``"Factorial of "` `+ num``            ``+ ``" is "` `+ obj.factorial(num));``    ``}``}` `// This code is contributed by Anshika Goyal.`

## Python3

 `# Python 3 program to find``# factorial of given number` `def` `factorial(n):` `    ``# single line to find factorial``    ``return` `1` `if` `(n ``=``=` `1` `or` `n ``=``=` `0``) ``else` `n ``*` `factorial(n ``-` `1``)`  `# Driver Code``num ``=` `5``print` `(``"Factorial of"``, num, ``"is"``,``      ``factorial(num))` `# This code is contributed``# by Smitha Dinesh Semwal.`

## C#

 `// C# program to find factorial``// of the given number``using` `System;` `class` `Factorial {` `    ``int` `factorial(``int` `n)``    ``{` `        ``// single line to find factorial``        ``return` `(n == 1 || n == 0) ? 1 : n * factorial(n - 1);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``Factorial obj = ``new` `Factorial();``        ``int` `num = 5;` `        ``Console.WriteLine(``            ``"Factorial of "` `+ num``            ``+ ``" is "` `+ obj.factorial(num));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`Factorial of 5 is 120`

The above solution cause overflow for large numbers. Please refer factorial of large number for a solution that works for large numbers.
Please write comments if you find any bug in the above code/algorithm, or find other ways to solve the same problem.

My Personal Notes arrow_drop_up