factorial() 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

# 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

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 exception
    print (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 exception
    print (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
    

 

Last Updated on October 24, 2021 by admin

Leave a Reply

Your email address will not be published. Required fields are marked *

Recommended Blogs