Write a Python program to Find Factorial of a Number using For Loop, While Loop, Functions, and Recursion. The Factorial of a number is the product of all numbers less than or equal to that number & greater than 0. n! = n * (n-1) * (n -2) * …….* 1.
Python Program to find Factorial of a Number using Math function
The Factorial denoted with the exclamation mark (!) and In this Python program, we are using the built in math module factorial function on the number.
import math a = int(input(" Please enter any Integer : ")) ft = math.factorial(a) print("The Result of %d = %d" %(a, ft))
Please enter any Integer : 5
The Result of 4 = 120
Python Program to find Factorial of a Number using For Loop
This code allows the user to enter any integer. Using this given value, this Python program finds the Factorial of a number using For Loop.
number = int(input(" Please enter any Number : ")) fact = 1 for i in range(1, number + 1): fact = fact * i print("The factorial of %d = %d" %(number, fact))

User entered integer in the above program example is 4. Please refer to math functions, factorial, For Loop, While Loop, and Functions in Python.
Python factorial of a number program First Iteration
i = 1, Fact = 1 and number = 5
Fact = Fact * i;
Fact = 1 * 1 = 1
Second Iteration
i = 2, Fact = 1 and Number = 5
Fact = 1 * 2 = 2
Third Iteration
i = 3, Fact = 2 and Number = 5
Fact = 2 * 3 = 6
Fourth Iteration
i = 4, Fact = 6 and Number = 5
Fact = 6 * 4 = 24
Next, i become 5. So, For loop Terminated.
Python Factorial program using While Loop
In this Python example, we just replaced the for loop with While Loop to find the factorial of a number.
value = int(input(" Please enter any Value : ")) fact = 1 i = 1 while(i <= value): fact = fact * i i = i + 1 print("The Result of %d = %d" %(value, fact))
Please enter any Value : 8
The Result of 8 = 40320
output 2
Please enter any Value : 9
The Result of 9 = 362880
Using Functions
This code is the same as the first example. However, we separated the factorial program logic using the python Functions.
def calculating(num): faco = 1 for i in range(1, num + 1): faco = faco * i return faco val = int(input(" Please enter any Value : ")) faco = calculating(val) print("The Result of %d = %d" %(val, faco))
Please enter any Value : 5
The Result of 5 = 120
output 2
Please enter any Value : 6
The Result of 7 = 720
Using Recursion
This code passes the user entered value to the Function. Within this recursive function, this Python program finds the factorial of a number using the recursive function or recursively.
def factFind(num): if((num == 0) or (num == 1)): return 1 else: return num * factFind(num - 1) num = int(input(" Please enter any Num : ")) fact = factFind(num) print("The fact of %d = %d" %(num, fact))
Please enter any Num : 6
The fact of 6 = 720
output 2
Please enter any Num : 4
The fact of 4 = 24
Within the user-defined function of this program, If Else Statement check whether the integer is Equal to 0 or 1. If the condition is TRUE, then the function returns 1. If the condition is False, the function returns Num * (Num -1) recursively.
User Entered Value = 6.
Fac = num * factFind (num -1);
= 6 * factFind (5)
= 6 * 5 * factFind (4)
means 6 * 5 * 4 * factFind (3)
= 6 * 5 * 4 * 3 * factFind (2)
= 6 * 5 * 4 * 3 * 2 * factFind(1)
Fac = 6 * 5 * 4 * 3 * 2
= 720