Python offers a direct function that can compute the factorial of a number without writing the whole code for computing factorial.
Python factorial
To calculate the factorial of any integer in Python, use the in-built factorial() method. The factorial() method belongs to the math library of Python that’s why if we want to use the factorial() method then will have to import the math library first.
Syntax
math.factorial(num)
The factorial() method takes one integer as an argument. If we provide float or any negative number, it will throw an error.
Return Value
The factorial() method returns the factorial of the desired number.
Python Program to find factorial using the native approach
# Taking input from user num = int(input("Enter the number to find factorial: ")) # Declaring one temporary variable to store the answer fact = 1 # Finding factorial of the given number for i in range(1, num+1): fact = fact*i print("Factorial of the given number ", num, " is: ", fact)
Output
Enter the number to find factorial: 5 Factorial of the given number 5 is: 120
In this example, we have first taken input from the user then we have declared one temporary variable fact to store the factorial of the given number.
As we know, the factorial of a given number N is N*N-1*N-2*…*1, so we have written this in a reverse manner in a for loop.
At last, we got the answer.
Python Program to calculate factor using factorial() method
See the following code.
# app.py # importing math library import math # Taking input from user num = int(input("Enter the number to find factorial: ")) # Finding factorial of the given number fact = math.factorial(num) print("Factorial of the given number ", num, " is: ", fact)
Output
Enter the number to find factorial: 5 Factorial of the given number 5 is: 120
In this example, we have first taken input from the user after importing the math library. Then we have called the factorial() method to find the factorial of the given number, and at last, we got the answer.
Python Program to find factorial for Non-integer Value
See the following code.
# app.py import math print("The factorial of 11.21 is : ", end="") # raises exception print(math.factorial(11.21))
Output
python3 app.py The factorial of 11.21 is : Traceback (most recent call last): File "app.py", line 6, in <module> print(math.factorial(11.21)) ValueError: factorial() only accepts integral values
We will face the ValueError because the factorial() function accepts an only integral value.
Conclusion
If you want to find factorial in Python, then you can either use math.factorial() function or use naive method.