What is 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.

Python Program to Find the Factorial of a Number

What is factorial?

Factorial is a non-negative integer. It is the product of all positive integers less than or equal to that number you ask for factorial. It is denoted by an exclamation sign (!).

Example:

The factorial value of 4 is 24.

Note: The factorial value of 0 is 1 always. (Rule violation)

Example -

Output:

Enter a number: 10 The factorial of 10 is 3628800

Explanation -

In the above example, we have declared a num variable that takes an integer as an input from the user. We declared a variable factorial and assigned 1. Then, we checked if the user enters the number less than one, then it returns the factorial does not exist for a negative number. If it returns false, then we check num is equal to zero, it returns false the control transfers to the else statement and prints the factorial of a given number.

Using Recursion

Python recursion is a method which calls itself. Let's understand the following example.

Example -

Output:

Explanation -

In the above code, we have used the recursion to find the factorial of a given number. We have defined the fact(num) function, which returns one if the entered value is 1 or 0 otherwise until we get the factorial of a given number.

Using built-in function

We will use the math module, which provides the built-in factorial() method. Let's understand the following example.

Example -

Output:

Enter the number: 6 Factorial of 6 is 720

We have imported the math module that has factorial() function. It takes an integer number to calculate the factorial. We don't need to use logic.

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    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.

    1.Recursive approach: 

    python3

    def factorial(n):

        return 1 if (n==1 or n==0) else n * factorial(n - 1);

    num = 5;

    print("Factorial of",num,"is",

    factorial(num))

    Output:

    Factorial of 5 is 120

    Time Complexity: O(n)
    Auxiliary Space: O(n)

    2. Iterative approach :

    Method1:

    python3

    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

    num = 5;

    print("Factorial of",num,"is",

    factorial(num))

    Output:

    Factorial of 5 is 120

    Time Complexity: O(n)
    Auxiliary Space: O(1)

    Method2: 

    Python3

    def factorial(n):

        res = 1

        for i in range(2, n+1):

            res *= i

        return res

    num = 5;

    print("Factorial of", num, "is",

    factorial(num))

    Output

    Factorial of 5 is 120

    Time Complexity: O(n)
    Auxiliary Space: O(1)

    3. One line Solution (Using Ternary operator): 

    Python3

    def factorial(n):

        return 1 if (n==1 or n==0) else n * factorial(n - 1)

    num = 5

    print ("Factorial of",num,"is",

          factorial(num))

    Output:

    Factorial of 5 is 120

    Time Complexity: O(n)
    Auxiliary Space: O(n)

    Please refer complete article on Program for factorial of a number for more details!

    4. By 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.

    Python3

    import math

    def factorial(n):

        return(math.factorial(n))

    num = 5

    print("Factorial of", num, "is",

          factorial(num))

    Output:

    Factorial of 5 is 120

    Method: Using numpy.prod 

    Python3

    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)


    What is Python factorial?

    factorial() in Python Finding the factorial of a number is a frequent requirement in data analysis and other mathematical analysis involving python. The factorial is always found for a positive integer by multiplying all the integers starting from 1 till the given number.

    How do you write a factorial program in Python?

    Example -.
    # Python program to find..
    # factorial of given number..
    import math..
    def fact(n):.
    return(math.factorial(n)).
    num = int(input("Enter the number:")).
    f = fact(num).
    print("Factorial of", num, "is", f).

    What is factorial programming?

    Factorial of a positive integer (number) is the sum of multiplication of all the integers smaller than that positive integer. For example, factorial of 5 is 5 * 4 * 3 * 2 * 1 which equals to 120. Factorial Program in C: All positive descending integers are added together to determine the factor of n.

    What is factorial and examples?

    Factorials (!) are products of every whole number from 1 to n. In other words, take the number and multiply through to 1. For example: If n is 3, then 3! is 3 x 2 x 1 = 6.

    Chủ đề