Sunday, November 17, 2024
Google search engine
HomeLanguagesfactorial() in Python

factorial() in Python

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




# Python code to demonstrate naive method
# to compute factorial
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




# Python code to demonstrate math.factorial()
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 ( negative number )
 
import math
 
print("The factorial of -5 is : ", end="")
 
# raises exception
print(math.factorial(-5))


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 : 

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/3987966b8ca9cbde2904ad47dfdec124.py", line 9, in 
    print (math.factorial(5.6))
ValueError: factorial() only accepts integral values

This article is contributed by Manjeet Singh. If you like Lazyroar and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the Lazyroar main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

RELATED ARTICLES

Most Popular

Recent Comments