A simple way to write a Python function to calculate the factorial of a number is using an if-else statement and for-loop. Where The factorial of a number is the product of all the integers from 1 to that number.
Python function to calculate the factorial of a number
A simple example code to get the factorial of 6 is 1*2*3*4*5*6 = 720
.
Note: Factorial is not defined for negative numbers, and the factorial of zero is one, 0! = 1
.
num = 6
# To take input from the user
# num = int(input("Enter a number: "))
factorial = 1
if num < 0:
print("Enter Positive number")
elif num == 0:
print("The factorial of 0 is 1")
else:
for i in range(1, num + 1):
factorial = factorial * i
print("The factorial of", num, "is", factorial)
Output:
iteration | factorial*i (returned value) |
i = 1 | 1 * 1 = 1 |
i = 2 | 1 * 2 = 2 |
i = 3 | 2 * 3 = 6 |
i = 4 | 6 * 4 = 24 |
i = 5 | 24 * 5 = 120 |
i = 6 | 120 * 6 = 720 |
Using In-built function:
The math module has a factorial() function to find the factorial of any number.
import math
num = 5
res = math.factorial(num)
print("Factorial:", res)
Output: Factorial: 120
Recursive method
def factorial(n):
# single line to find factorial
return 1 if (n == 1 or n == 0) else n * factorial(n - 1);
num = 5
print(factorial(num))
Output: 120
Do comment if you have any doubts or suggestions on this Python factorial program.
Note: IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.