factorial() in Python
Last Updated :
08 Dec, 2022
Not many people know, but python offers a direct function that can compute the factorial of a number without writing the whole code for computing factorial.
Naive method to compute factorial
Python3
n = 23
fact = 1
for i in range ( 1 , n + 1 ):
fact = fact * i
print ( "The factorial of 23 is : " , end = "")
print (fact)
|
Output
The factorial of 23 is : 25852016738884976640000
Time Complexity: O(n)
Auxiliary Space: O(1)
Using math.factorial()
This method is defined in “math” module of python. Because it has C type internal implementation, it is fast.
math.factorial(x)
Parameters :
x : The number whose factorial has to be computed.
Return value :
Returns the factorial of desired number.
Exceptions :
Raises Value error if number is negative or non-integral.
Python3
import math
print ( "The factorial of 23 is : " , end = "")
print (math.factorial( 23 ))
|
Output
The factorial of 23 is : 25852016738884976640000
Time Complexity: O(n)
Auxiliary Space: O(1)
Exceptions in math.factorial()
- If given number is Negative :
Python3
# Python code to demonstrate math.factorial()
# Exceptions ( Non-Integral number )
import math
print(“The factorial of 5.6 is : “, end=””)
# raises exception
print(math.factorial(5.6))
Output:
Traceback (most recent call last):
File "/home/f29a45b132fac802d76b5817dfaeb137.py", line 9, in
print (math.factorial(-5))
ValueError: factorial() not defined for negative values
- If given number is Non – Integral Value :
Output:
Traceback (most recent call last):
File "/home/3987966b8ca9cbde2904ad47dfdec124.py", line 9, in
print (math.factorial(5.6))
ValueError: factorial() only accepts integral values
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...