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)
Contact Us