What is Factorial?
Factorial of any positive number (n) is a product of all number which is less than or equal to (n) but greater than 0.
for example Factorial of 4 = 4*3*2*1
Note: Factorial is represented by exclamatory mark (!).
Mathematical formula for Factorial
n ! = n ( n - 1)( n - 2)( n - 3)( n - 4)(n - 5)... (5)(4)(3)(2)(1)
where n should be greater than 0. There is no factorial defined for negative numbers whereas factorial of 0! is 1.
In this tutorial, you will learn how to write a python program to find factorial of any non-negative integer which is greater than 0.
1) Python Program to calculate Factorial using for loop:
#Python program to find factorial of a number using for loop
#Taking input of Integer from user
n = int(input("Enter a number : "))
#Declaring and Initilizing factorial
factorial = 1
#check if number is negative
#Factoral can't be find of negative number
if (n < 0 ):
#If Yes,Then diplay the error message
print("Error! You have entered negative value")
else:
#If No,
#For Loop for iteration i = 1 to number itself
#range opts n-1 so we add 1 in n-1
#For example (if user pass 24 in range it will go till 23)
for i in range(1,n+1):
#Capture factorial value in factorial vaiable
#Formula is n! => n*(n-1)*(n-2)*(n-3).......*3*2*1
factorial *= i
#Print the Factorial of entered number
print("Factorial : ", factorial)
OUTPUT :
Enter a number : 10
Factorial : 3628800
2) Python Program to calculate Factorial using a while loop
#Python program to find factorial of a number using While Loop
#Taking input of Integer from user
n = int(input("Enter a number : "))
#Declaring and Initilizing variables
i = 1
factorial = 1
#check if number negative
#Factoral can't be find of negative number
if (n < 0 ):
#If Yes,Than diplay the error message
print("Error! You have entered negative value")
else:
#If No
#While Loop for iteration i = 1 to number itself
while( i <= n) :
#Capture factorial value in factorial vaiable
#Formula is n! => n*(n-1)*(n-2)*(n-3).......*3*2*1
factorial = factorial * i
#Increase the value of value of `i` on every iteration
i = i + 1
#Print the Factorial of entered number
print("Factorial : ", factorial)
OUTPUT :
Enter a number: 12
Factorial: 479001600
Calculate Factorial using Python factorial() function
Python math library contains a factorial() function which calculates the factorial of the input value and returns its output value.
Syntax of factorial()
math.factorial(n)
where n is any positive integer
3) Calculate factorial using Python math.factorial function
#Python program to find factorial of a number using a library function
#importing the math library
import math
#Taking input of Integer from user
n = int(input("Enter a number : "))
#check if number negative
#Factoral can't be find of negative number
if (n < 0 ):
#If Yes,Than diplay the error message
print("Error! You have entered negative value")
else:
#If No
#factorial method of math library
factorial = math.factorial(n)
#Print the Factorial of entered number
print("Factorial : ",factorial)
OUTPUT :
Enter a number: 10
Factorial: 3628800
Output 2:
Enter a number: -1
Error! You have entered negative value