The easiest way is to use math.factorial
(available in Python 2.6 and above):
import math
math.factorial(1000)
If you want/have to write it yourself, you can use an iterative approach:
def factorial(n):
fact = 1
for num in range(2, n + 1):
fact *= num
return fact
or a recursive approach:
def factorial(n):
if n < 2:
return 1
else:
return n * factorial(n-1)
Note that the factorial function is only defined for positive integers, so you should also check that n >= 0
and that isinstance(n, int)
. If it’s not, raise a ValueError
or a TypeError
respectively. math.factorial
will take care of this for you.