# Python Program to find factorial () of a Number

## What is Factorial?

Factorial of a number can be described as the product or multiplication of all positive integers which is equal to or less than the number for which the product or factorial is being determined.

The mathematical expression is represented as a number followed by an exclamation mark. A factorial is generally represented as an integer of non-negative type. A factorial for zero value is always represented as one, and this is also classified as a violation of the rule of factorial concept.

In Python, there are broadly three ways of determining the factorial of a number as classified below: –

• Factorial computation using For Loop
• Factorial computation using recursion.
• Usage of user-defined function and along with the application of `math.factorial()` method for determination of factorial.

Let’s discuss each of them in detail:

In this Python Factorial tutorial, you will learn:

## Algorithm for the Factorial Program in Python

Let us take an example that illustrates the concept of factorial.

For determination of factorial 5, follow the following steps: –

```5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120
```

Here, 5! is expressed as 120.

The following diagram helps in understanding the algorithm of computing factorial, and in this case, let us take an example of factorial 4!

## Formula of Factorial

Mathematically, factorial is expressed as shown below: –

`N! = N x (N-1) x (N-2) x…. x 1`

## How to find Factorial of a number using Python Program using Loop

Let us take up the example of python code that takes a positive integer as input to determine the factorial of positive integers. In the following code, the loop begins with one, and then it multiplies by each number that precedes the actual number whose factorial is to be determined.

The following python code illustrates the factorial function using a loop.

Python code:

```print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)
```

Output:

```Input a number
4
The factorial of the number is 24
```

The above python program takes the input of positive numbers only, and it does not have a check of negative numbers in it. In this program, the factor is 1 when j is equal to 1. When j is 2, the factor is multiplied with 2, and it will do the action till j comes at 4 to arrive at 24.

## How to find Factorial of a number using Function in Python Program.

The following python code illustrates the factorial function using function. Let us take up the following python code that takes positive integers as input to determine the factorial of positive integers.

In previous python code, the check for negative numbers was not applied, making the factorial function incomplete and prone to deliver an error message if negative numbers are put as an input.

In the given code, the loop begins with one, and then it multiplies by each number that precedes the actual number whose factorial is to be determined, and the function also checks for negative numbers.

Python code:

```print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
if factorialIP < 0:
print ('Factorial does not exist')
factor=0
return factor
elif factorialIP == 0:
factor=1
return factor
print(factor)
else:
factor = 1
for j in range (1, factorialIP+1):
factor = factor * j
return factor
print ("The factorial of the number is ", factorial(factorialIP))
```

Output:

```1) Enter a number to determine factorial
-4
Factorial does not exist
The factorial of the number is 0

2) Enter a number to determine factorial
4
Factorial does not exist
The factorial of the number is 24
```

The above python program takes the input of positive numbers only, and it does have a check of negative numbers in it using the if and else statement of python. In this program, the factor is 1 when j equals 1. When j is 2, the factor is multiplied with 2, and it will do the action till j comes at 4 to arrive at 24.

## How to find Factorial using Recursion in Python Program

The following python code illustrates the factorial function using recursion. Let us take up the following python code that takes positive integers as input to determine the factorial of positive integers. In this example, a recursive function determines the factorial number.

Python code:

```print("Enter a number for the purpose of determining factorial")
def factorial(num2):
if num2 < 0:
return 'Factorial does not exist'
elif num2 == 0:
return 1
else:
return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))
```

Output: –

```Enter a number for the purpose of determining factorial
4
The factorial of the number is 24
```

The recursion can be explained as a concept wherein the function invoked in the python module can call itself again and again. It runs until the time the python condition present in the python module is satisfied, wherein the function invoked is passed with value.

In the above python program, the function number def factorial keeps calling itself recursively until and unless the number reaches zero. Once the number reaches zero, it initializes the number as 1, ending the recursion.

## How to use math. factorial() in Python Program

The following python code illustrates the factorial function using math.factorial(), which can be used by importing the math module.

This function does not accept negative integers, and it throws an error message of value error when float numbers are provided. Let us take up the following python code that takes positive integers as input to determine the factorial of positive integers.

Python code:

```print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))
```

Output: –

```Enter a number for computing factorial
4
The factorial is, as computed, comes out to be 24
```

## Application of Factorial in Python

Factorial of a number has a wide level of applications in mathematics. Here, are important applications of Python:

• The python helps in computation followed with print factorial in faster and more efficient terms than other available programming languages.
• The python code is easily understandable and can be replicated across different platforms, and the factorial python program can be incorporated in several mathematical model-building assignments.

### Summary:

• Factorial of a number can be described as the product or multiplication of all positive integers equal to or less than the number for which the product or factorial is being determined.
• There are three ways in which the python factorial program can be executed.
1. Factorial computation using For Loop
2. Factorial computation using recursion.
3. Usage of user-defined function
• The factorial of a number is determined for a non-negative integer, and the results are always in positive integers.
• By exception of the rule, a zero factorial is at 1.
• Factorial of a number has a wide level of applications in mathematics.

Learn our next tutorial about Swap two numbers without using a third variable