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 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find factorial of given number
#include <iostream>
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

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to find factorial of given number
#include <stdio.h>
  
// function to find factorial of given number
unsigned int factorial(unsigned int n)
{
    if (n == 0)
        return 1;
    return n * factorial(n - 1);
}
  
int main()
{
    int num = 5;
    printf("Factorial of %d is %d", num, factorial(num));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find factorial
// of given number
  
// function to find factorial
// of given number
function factorial($n)
{
    if ($n == 0)
        return 1;
    return $n * factorial($n - 1);
}
  
    // Driver Code
    $num = 5;
    echo "Factorial of ", $num, " is ", factorial($num);
  
// This code is contributed by m_kit
?>

chevron_right


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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for factorial of a number
#include <iostream>
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

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <stdio.h>
  
// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// function to find factorial 
// of given number
function factorial( $n)
{
    $res = 1; $i;
    for ($i = 2; $i <= $n; $i++)
        $res *= $i;
    return $res;
}
  
// Driver Code
$num = 5;
echo "Factorial of ", $num, " is "
                    factorial($num);
  
// This code is contributed 
// by anuj_67.
?>

chevron_right


Output :

Factorial of 5 is 120

Using While loop

C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program for factorial of a number
#include <stdio.h>
  
// function to find factorial of given number
unsigned int factorial(unsigned int n)
{
    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;
}

chevron_right


C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for factorial of a number
#include <iostream>
using namespace std;
  
// function to find factorial of given
// number using while loop
unsigned int factorial(unsigned int n)
{
    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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find factorial of given number
class Test {
    // Method to find factorial of the given number
    static int factorial(int n)
    {
        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));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to find 
# factorial of given number
  
# Function to find factorial of given number
def factorial(n):
       
    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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 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));
    }
}

chevron_right



Output :

Factorial of 5 is 120

Time complexity of the above iterative solutions is O(n).

One line Solution (Using Ternary operator):

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find factorial of given number
#include <iostream>
  
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.

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find factorial
// of given number
  
function factorial( $n)
{
      
    // single line to find factorial
    return ($n == 1 || $n == 0) ? 1: 
             $n * factorial($n - 1); 
}
  
    // Driver Code
    $num = 5;
    echo "Factorial of ", $num, " is ", factorial($num);
  
// This code is contributed by anuj_67.
?>

chevron_right


Output:

Factorial of 5 is 120

The above solutions cause overflow for small 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.

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details




My Personal Notes arrow_drop_up