# 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 Python Factorial denoted with the symbol (!). The Python Factorial of 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

In this Python factorial of a number program, we are using the built-in math function called factorial.

```# Python Program to find Factorial of a Number

import math

number = int(input(" Please enter any Number to find factorial : "))

fact = math.factorial(number)
print("The factorial of %d  = %d" %(number, fact))```

Python math factorial function output

``Please enter any Number to find factorial : 5The factorial of 4 = 120``

## Python Program to find Factorial of a Number using For Loop

This python program for the factorial of a number allows the user to enter any integer value. Using this value, it finds the Factors of a number using For Loop.

```# Python Program to find Factorial of a Number

number = int(input(" Please enter any Number to find factorial : "))
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 python program example is 4. Please refer to math functions, factorial, For Loop, While Loop, and Functions in Python.

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 Program to find Factorial of a Number using While Loop

In this python factorial program, we just replaced the for loop with While Loop

```# Python Program to find Factorial of a Number

number = int(input(" Please enter any Number to find factorial : "))
fact = 1
i = 1

while(i <= number):
fact = fact * i
i = i + 1

print("The factorial of %d  = %d" %(number, fact))```

Factorial of a Number using a While loop output

``Please enter any Number to find factorial : 8The factorial of 8 = 40320``

Factorial of a Number using a While loop output 2

``Please enter any Number to find factorial : 9The factorial of 9 = 362880``

## Python Program to find Factorial of a Number using Functions

This Python factorial program is the same as the first example. However, we separated the logic using Functions

```# Python Program to find Factorial of a Number

def factorial(num):
fact = 1

for i in range(1, num + 1):
fact = fact * i

return fact

number = int(input(" Please enter any Number to find factorial : "))

facto = factorial(number)
print("The factorial of %d  = %d" %(number, facto))```
``Please enter any Number to find factorial : 5The factorial of 5 = 120``

Factorial program using functions output 2

``Please enter any Number to find factorial : 6The factorial of 7 = 720``

## Python Program to find Factorial of a Number using Recursion

This Python program for factorial of a number pass user entered value to the Function. Within this function, this program finds the Factorial of a number Recursively.

```# Python Program to find Factorial of a Number

def factorial(num):
if((num == 0) or (num == 1)):
return 1
else:
return num * factorial(num - 1)

number = int(input(" Please enter any Number to find factorial : "))

fact = factorial(number)
print("The factorial of %d  = %d" %(number, fact))```
``Please enter any Number to find factorial : 6The factorial of 6 = 720``

Recursive Factorial program output 2

``Please enter any Number to find factorial : 4The factorial of 4 = 24``

Within the user-defined function of this python factorial program, If Else Statement check whether the Number is Equal to 0 or 1. If the condition is TRUE, then the function returns 1. If the condition is False, the function returns Number * (Number -1) recursively.

User Entered Value = 6.

Factorial = Number * Factorial (Number -1);
= 6 * Calculate_Factorial (5)
= 6 * 5 * Calculate_Factorial (4)
= 6 * 5 * 4 * Calculate_Factorial (3)
= 6 * 5 * 4 * 3 * Calculate_Factorial (2)
= 6 * 5 * 4 * 3 * 2 * Calculate_Factorial (1)
= 6 * 5 * 4 * 3 * 2
= 720