# 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

 `# 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 ( 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 :

## Python3

Output:

```Traceback (most recent call last):