Before we start implementing **factorial** using **Python**, let us first discuss what factorial of a number implies.

Theoretically, the factorial of a number is defined as the product of all positive integers less than or equal to the number. Certainly,** ‘n!’** represents the factorial of an integer** ‘n’**. As an example, let us look at the factorial of the number **6,**

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

The following techniques could be followed to determine the factorial of an integer.

- Using Loop
- Using Recursive function call
- Using predefined function ‘factorial()’ from the math module

## Using Loop in Python

The below-mentioned code illustrates how we can calculate the factorial of a given number using for **loop** in Python programming.

```
n=9
fact=1
for i in range(2,n+1):
fact=fact*i
print("The factorial of ",n," is: ",fact)
```

**Output:**

```
The factorial of 9 is: 362880
```

## Using Recursion function call in Python

Similarly, we can also calculate the factorial of a given number using a **Recursive function**. Let us see how

```
n=9
def fact(n):
if(n==1 or n==0):
return 1
else:
return n*fact(n-1)
print("The factorial of ",n," is: ",fact(n))
```

**Output**

```
The factorial of 9 is: 362880
```

For a clear understanding of **functions** and **recursion**, one can refer to

Python Function and Arguments

Python Recursion Function

## Using the factorial() method from the math module in Python

The **math** module provides a simple way to calculate the factorial of any positive integer. Certainly, the module comes with a pre-defined method **‘factorial()’** which takes in the integer as an argument and returns the factorial of the number. Let’s take a look at how we can use the pre-defined method and consequently find the factorial. The code given below depicts how the method ‘**factorial()**‘ can be used

```
import math
n=9
print("The factorial of ",n," is: ",math.factorial(n))
```

**Output:**

```
The factorial of 9 is: 362880
```

Furthermore, in the case of all of the above-mentioned techniques, we have used a **pre-defined** value of the integer** ‘n’.** Also making **‘n’** a user input is possible. This could be easily achieved by substituting the line **‘n=9’** with:

```
n=int(input("Enter the number for calculating factorial"))
```

The Python input function is covered in further detail in one of our previous articles.

**References:**

https://stackoverflow.com/questions/5136447/function-for-factorial-in-python

https://stackoverflow.com/questions/20604185/find-the-best-way-for-factorial-in-python

Hello Sir,

How do you to find the following using switch case statement

1. Factorial

2.amstrong

3.peterson method

I m full doubts this one plz can u give me a solution for this one.

I hope u r reply my doubt and I m waiting for u r reply.

Thank you…