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 120
Explanation:
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 numbers
Method 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.