Python Program to find factorial of a number
In this tutorial we will learn how to write Python program to find factorial of a number.
Formula to Calculate Factorial of a Number:
n! = 1 * 2 *3 . . . . . . n
OR
n! = n * ( n-1 ) * ( n – 2 ) . . . . . * 1
Factorial of 9 = 1*2*3*4*5*6*7*8*9 = 362880
Python program to find factorial of a number using Recursion :
def fact(num): if (num==1 or num==0): return 1 else: return num * fact(num - 1) n = int(input("Enter number to Find Factorial: ")) factorial=fact(n) print("Factorial of",n,"is",factorial)
Output :
Enter number to Find Factorial: 9 Factorial of 9 is 362880
Explanation :
n = int(input(“Enter number to Find Factorial: “))
Get user input and store it in variable n.
factorial=fact(n)
Call factorial function with user input as argument and store it in variable factorial.
def fact(num):
if (num==1 or num==0):
return 1
else:
return num * fact(num - 1)
Here definition of fact function, first we check if user input is 1 or 0 . If so return 1. If user input is other than 1 or 0 then call recursion function fact(num -1).
print(“Factorial of”,n,”is”,factorial)
At last print the factorial of user input number.
Program to find factorial in python using for Loop :
num = int(input("Enter number for factorial : ")) fact = 1 if num < 0: print("No factorial for negative numbers") elif num == 0: print("The factorial of 0 is 1") else: for i in range(1,num + 1): fact = fact*i print("The factorial of",num,"is",fact)
Python program to find factorial using While Loop :
number = int(input(" Enter a Number to find factorial : ")) fact = 1 num = number if number <0: print("No factorial for negative number") else: while( number > 0): fact = fact * number number = number - 1 print("The factorial of %d = %d" %(num, fact))
Output :
Enter a Number to find factorial : 5 The factorial of 5 = 120
Factorial using math function in Python:
import math def factorial(n): return(math.factorial(n)) number = int(input("Enter number to find Factorial: ")) print("Factorial of", number, "is",factorial(number))