Python Program to find Factorial of a Number

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))
Python Program to find Factorial of a Number 2

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