Factorial using loop in python

Here you will get python program to find factorial of number using for and while loop.

Factorial of a number is calculated by multiplying it with all the numbers below it starting from 1.

For example factorial of 4 is 24 (1 x 2 x 3 x 4).

Below program takes a number from user as an input and find its factorial.

Using For Loop

num=int(input("enter a number: "))

fac=1

foriinrange(1,num+ 1):

fac=fac*i

print("factorial of ",num," is ",fac)

Output

enter a number: 5
factorial of 5 is 120

Using While Loop

num=int(input("enter a number: "))

fac=1

i=1

whilei<=num:

fac =fac*i

i=i+1

print("factorial of ",num," is ",fac)

Output

enter a number: 4
factorial of 4 is 24

Video Tutorial


Comment below if you have any queries related to above python factorial program.

In this article, you'll learn to find the factorial of a number and display it.

To understand this example, you should have the knowledge of the following Python programming topics:

  • Python if...else Statement
  • Python for Loop
  • Python Recursion

The factorial of a number is the product of all the integers from 1 to that number.

For example, the factorial of 6 is 1*2*3*4*5*6 = 720. Factorial is not defined for negative numbers, and the factorial of zero is one, 0! = 1.

Factorial of a Number using Loop

# Python program to find the factorial of a number provided by the user.

# change the value for a different result
num = 7

# To take input from the user
#num = int(input("Enter a number: "))

factorial = 1

# check if the number is negative, positive or zero
if num < 0:
   print("Sorry, factorial does not exist for negative numbers")
elif num == 0:
   print("The factorial of 0 is 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print("The factorial of",num,"is",factorial)

Output

The factorial of 7 is 5040

Note: To test the program for a different number, change the value of num.

Here, the number whose factorial is to be found is stored in num, and we check if the number is negative, zero or positive using if...elif...else statement. If the number is positive, we use for loop and range() function to calculate the factorial.

iteration factorial*i (returned value)
i = 1 1 * 1 = 1
i = 2 1 * 2 = 2
i = 3 2 * 3 = 6
i = 4 6 * 4 = 24
i = 5 24 * 5 = 120
i = 6 120 * 6 = 720
i = 7 720 * 7 = 5040

Factorial of a Number using Recursion

# Python program to find the factorial of a number provided by the user
# using recursion

def factorial(x):
    """This is a recursive function
    to find the factorial of an integer"""

    if x == 1:
        return 1
    else:
        # recursive call to the function
        return (x * factorial(x-1))


# change the value for a different result
num = 7

# to take input from the user
# num = int(input("Enter a number: "))

# call the factorial function
result = factorial(num)
print("The factorial of", num, "is", result)

In the above example, factorial() is a recursive function that calls itself. Here, the function will recursively call itself by decreasing the value of the x.

To learn about the working of recursion, visit Python recursion.

How do you write a factorial loop in Python?

The factorial of a number is the product of all the integers from 1 to that number. For example, the factorial of 6 is 1*2*3*4*5*6 = 720 . ... Factorial of a Number using Loop..

Can you use Factorials in Python?

factorial() in Python Not many people know, but python offers a direct function that can compute the factorial of a number without writing the whole code for computing factorial. This method is defined in “math” module of python.