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

For example, Factorial of 5 represented as

5! = 5 *4 * 3 * 2 * 1 = 120

## 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))

**OUTPUT**

## 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))

**OUTPUT**

**ANALYSIS**

User entered integer in the above Python example is 4

**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))

**OUTPUT**

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

This 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))

**OUTPUT**

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

This 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))

**OUTPUT**

**ANALYSIS:**

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