Iterative Solution to find factorial of a number

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

Approach 1: Using For loop 

Follow the steps to solve the problem:

  • Using a for loop, we will write a program for finding the factorial of a number. 
  • An integer variable with a value of 1 will be used in the program. 
  • With each iteration, the value will increase by 1 until it equals the value entered by the user. 
  • The factorial of the number entered by the user will be the final value in the fact variable.

Below is the implementation for the above approach:

C++




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


C




#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;
}


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




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


Javascript




<script>
// JavaScript program to find factorial of given number
  
    // Method to find factorial of the given number
    function factorial(n)
    {
        var res = 1, i;
        for (i = 2; i <= n; i++)
            res *= i;
        return res;
    }
  
    // Driver method
      
        var num = 5;
        document.write("Factorial of " + num + " is " + factorial(5));
  
  
// This code is contributed by shivanisinghss2110.
  
</script>


Output

Factorial of 5 is 120

Time Complexity: O(n)
Auxiliary Space: O(1)

Approach 2: This example uses a while loop to implement the algorithm and find the factorial program.

C




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




<script>
        // JavaScript Program to implement
        // the above approach
        // function to find factorial of given
        // number using while loop
        function factorial(n) {
            if (n == 0)
                return 1;
            let i = n, fact = 1;
            while (Math.floor(n / i) != n) {
                fact = fact * i;
                i--;
            }
            return fact;
        }
  
        // Driver code
        let num = 5;
        document.write("Factorial of "
            + num + " is "
            + factorial(num) + "<br>");
  
// This code is contributed by Potta Lokesh
  
    </script>


Output

Factorial of 5 is 120

Time complexity: O(N)
Auxiliary Space: O(1)

Approach 3: A ternary operator can be thought of as a shorthand for an if…else statement. The conditions are provided, along with statements to be executed based on them. Here’s the program for factorial using a ternary operator.

C++




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




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


Javascript




<script>
  
// JavaScript 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
  
    var num = 5;
    document.write("Factorial of " +num +" is " + factorial(num));
  
// This code is contributed by shivanisinghss2110.
  
</script>


Output

Factorial of 5 is 120

Time complexity: O(n)
Auxiliary Space: O(n)

Program for factorial of a number

Similar Reads

What is the factorial of a number?

Factorial of a non-negative integer is the multiplication of all positive integers smaller than or equal to n. For example factorial of 6 is 6*5*4*3*2*1 which is 720.  A factorial is represented by a number and a  ” ! ”  mark at the end. It is widely used in permutations and combinations to calculate the total possible outcomes. A French mathematician Christian Kramp firstly used the exclamation....

Iterative Solution to find factorial of a number:

...

Problems in writing code of factorial

...

Contact Us