factorial() in Python

11 Oct, 2017
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
# Python code to demonstrate naive method# to compute factorialn = 23fact = 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

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.

# 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

Exceptions in math.factorial()
If give number is Negative :# Python code to demonstrate math.factorial()# Exceptions ( negative number )  import math  print ("The factorial of -5 is : ",end="")  # raises exceptionprint (math.factorial(-5))Output :The factorial of -5 is : 
Runtime Error :Traceback (most recent call last):
  File "/home/f29a45b132fac802d76b5817dfaeb137.py", line 9, in 
    print (math.factorial(-5))
ValueError: factorial() not defined for negative values

# Python code to demonstrate math.factorial()# Exceptions ( negative number )  import math  print ("The factorial of -5 is : ",end="")  # raises exceptionprint (math.factorial(-5))
Output :
The factorial of -5 is : 

Runtime Error :
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 :# Python code to demonstrate math.factorial()# Exceptions ( Non-Integral number )  import math  print ("The factorial of 5.6 is : ",end="")  # raises exceptionprint (math.factorial(5.6))Output :The factorial of 5.6 is : 
Runtime Error :Traceback (most recent call last):
  File "/home/3987966b8ca9cbde2904ad47dfdec124.py", line 9, in 
    print (math.factorial(5.6))
ValueError: factorial() only accepts integral values

# Python code to demonstrate math.factorial()# Exceptions ( Non-Integral number )  import math  print ("The factorial of 5.6 is : ",end="")  # raises exceptionprint (math.factorial(5.6))
Output :
The factorial of 5.6 is : 

Runtime Error :
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 GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks 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.
Python-Library
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.