In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n:
n! = n × ( n − 1 ) × ( n − 2 ) × ( n − 3 ) × ⋯ × 3 × 2 × 1
For example,
5 ! = 5 × 4 × 3 × 2 × 1 = 120
Note: factorial is defined only for non-negative integer numbers.
Finding factorial of a number in Python using Iteration
1. Factorial of a number using for loop
# input number to calculate factorial
num = int(input("Enter the number :"))
#initialize factorial to 1
factorial = 1
if num < 0:
print("Factorial is defined only for non-negative integer numbers")
else:
for i in range(1,num+1):
factorial = factorial * i
print("Factorial of {} is {}".format(num, factorial))
Output
Enter the number :5
Factorial of 5 is 120
2. Factorial of a number using while loop
def factorial(number):
if number == 0 or number == 1:
return 1
else:
factorial = 1
while(number > 1):
factorial = factorial * number
number = number - 1
return factorial
#input number to calculate factorial
number = int(input("Enter the number :"))
#calculate factorial if number is non-negative
if number < 0:
print('Factorial is defined only for non-negative integer numbers')
else:
print('Factorial is ', factorial(number))
Factorial of a number using recursion
def factorial(number):
return 1 if (number==1 or number==0) else number * factorial(number - 1)
#input number to calculate factorial
number = int(input("Enter the number :"))
print("Factorial is", factorial(number))
Factorial of a number using in-built math module
from math import factorial
num = int(input("Enter the number :"))
fact = factorial(num)
if num < 0:
print("Factorial is defined only for non-negative integer numbers")
else:
print("Factorial is", factorial(num))
