Python Program to Find the Factorial of a Number
Factorial of a non-negative integer, is multiplication of all integers smaller than or equal to n.
For example factorial of 6 is 6*5*4*3*2*1 which is 720.
Find the Factorial of a Number Using Recursive approach
This Python program uses a recursive function to calculate the factorial of a given number. The factorial is computed by multiplying the number with the factorial of its preceding number.
# Python 3 program to find
# factorial of given number
def factorial(n):
# single line to find factorial
return 1 if (n==1 or n==0) else n * factorial(n - 1)
# Driver Code
num = 5
print("Factorial of",num,"is",factorial(num))
Output:
Factorial of 5 is 120
Time Complexity: O(n)
Auxiliary Space: O(n)
Find the Factorial of a Number Using Iterative approach
Example 1:
# Python 3 program to find
# factorial of given number
def 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
# Driver Code
num = 5
print("Factorial of",num,"is",
factorial(num))
# This code is contributed by Dharmik Thakkar
Output:
Factorial of 5 is 120
Time Complexity: O(n)
Auxiliary Space: O(1)
Example 2:
# Python 3 program to find
# factorial of given number
# Function to find factorial of given number
def factorial(n):
res = 1
for i in range(2, n+1):
res *= i
return res
# Driver Code
num = 5
print("Factorial of", num, "is",
factorial(num))
Output
Factorial of 5 is 120
Time Complexity: O(n)
Auxiliary Space: O(1)
Find the Factorial of a Number Using One line Solution (Using Ternary operator):
# Python 3 program to find
# factorial of given number
def factorial(n):
# single line to find factorial
return 1 if (n==1 or n==0) else n * factorial(n - 1)
# Driver Code
num = 5
print ("Factorial of",num,"is",
factorial(num))
# This code is contributed
# by Smitha Dinesh Semwal.
Output:
Factorial of 5 is 120
Time Complexity: O(n)
Auxiliary Space: O(n)
Find the Factorial of a Number Using using In-built function
In Python, math module contains a number of mathematical operations, which can be performed with ease using the module. math.factorial() function returns the factorial of desired number.
Syntax: math.factorial(x)
Parameter:
x: This is a numeric expression.Returns: factorial of desired number.
# Python 3 program to find
# factorial of given number
import math
def factorial(n):
return(math.factorial(n))
# Driver Code
num = 5
print("Factorial of", num, "is",
factorial(num))
# This code is contributed by Ashutosh Pandit
Output:
Factorial of 5 is 120
Time complexity: O(N)
Auxiliary space: O(1)
Find the Factorial of a Number Using numpy.prod
import numpy
n=5
x=numpy.prod([i for i in range(1,n+1)])
print(x)
Output
120
Time Complexity: O(n)
Auxiliary Space: O(1)
Prime Factorization Method to find Factorial
- Initialize the factorial variable to 1.
- For each number i from 2 to n, do the following:
a. Find the prime factorization of i.
b. For each prime factor p and its corresponding power k in the factorization of i, multiply the factorial variable by p raised to the power of k. - Return the factorial variable.
# Python 3 program to find factorial
# of a given number using prime
# factorization method.
# Function to find prime factors of a number
def primeFactors(n):
factors = {}
i = 2
while i*i <= n:
while n % i == 0:
if i not in factors:
factors[i] = 0
factors[i] += 1
n //= i
i += 1
if n > 1:
if n not in factors:
factors[n] = 0
factors[n] += 1
return factors
# Function to find factorial of a number
def factorial(n):
result = 1
for i in range(2, n+1):
factors = primeFactors(i)
for p in factors:
result *= p ** factors[p]
return result
# Driver Code
num = 5
print("Factorial of", num, "is", factorial(num))
Output
Factorial of 5 is 120
Time Complexity: O(sqrt(n))
Auxiliary Space: O(sqrt(n))
Please refer complete article on Program for factorial of a number for more details!