Method 1: Using the numpy library
import numpy
num = int(input("Enter a number whose factorial you want: "))
if num < 0:
print("Opps!, The number you entered is negative. Factorial does not exist for negative numbers")
elif num == 0:
print("The factorial of 0 is 1")
else:
x=numpy.prod([i for i in range(1,num+1)])
print("The factorial of",num,"is",x) Output:
Enter a number whose factorial you want: 5
The factorial of 5 is 120Explanation:
We simply used the prod() function of the numpy library, wherein we used a for loop that will run on till the number entered by the user.
Method 2: Directly using the factorial() of the math library
import math
def get_factorial(n):
return(math.factorial(n))
num = int(input("Enter a number whose factorial you want: "))
if num < 0:
print("Opps!, The number you entered is negative. Factorial does not exist for negative numbers")
elif num == 0:
print("The factorial of 0 is 1")
else:
print("The factorial of",num,"is",get_factorial(num)) Output:
Enter a number whose factorial you want: 18
The factorial of 18 is 6402373705728000
Enter a number whose factorial you want: -89
Opps!, The number you entered is negative. Factorial does not exist for negative numbersMethod 3: Using iterative approach with range() function
def get_factorial(n):
initial = 1
for i in range(2, n+1):
initial *= i
return initial
num = int(input("Enter a number whose factorial you want: "))
if num < 0:
print("Opps!, The number you entered is negative. Factorial does not exist for negative numbers")
elif num == 0:
print("The factorial of 0 is 1")
else:
print("The factorial of",num,"is",get_factorial(num)) Explanation:
Here we assigned the value of initial * I to the variable initial. This simply means that as we start our for loop with 2, the very first value assigned to the initial will be 2*1 = 2. So at i=2, the value in the initial will be 2. This goes on till the loop reaches its defined range.
Method 4: Using simple iteration
def get_factorial(n):
if n < 0:
return 0
elif n == 0 or n == 1:
return 1
else:
fact = 1
while(n > 1):
fact *= n
n -= 1
return fact
num = int(input("Enter a number whose factorial you want: "))
if num < 0:
print("Opps!, The number you entered is negative. Factorial does not exist for negative numbers")
elif num == 0:
print("The factorial of 0 is 1")
else:
print("The factorial of",num,"is",get_factorial(num)) Here is the end of our article. We encourage you to come up with your approach and share it with us.



