Hướng dẫn factorial python using function

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

Nội dung chính

  • Factorial of a Number using Loop
  • Factorial of a Number using Recursion
  • 1.Recursive approach: 
  • 2. Iterative approach :
  • 3. One line Solution (Using Ternary operator): 
  • 4. By using In-built function : 
  • Method: Using numpy.prod 
  • Output 
  • How can I write a factorial program in Python using functions?
  • How do you write a program to find factorial of a number in Python using while loop?
  • What is Python factorial program?
  • How do you write a Python factorial for loop?

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.

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.

    Hướng dẫn factorial python using function

    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)


    How can I write a factorial program in Python using functions?

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

    How do you write a program to find factorial of a number in Python using while loop?

    Let's test that it works:.

    f = factorial(5) print(f) f = factorial(5) print(f).

    def factorial(n): if (n==1 or n==0): return 1. else: # n! ... .

    print(factorial(5)) print(factorial(5)).

    from math import factorial. print(factorial(5)) from math import factorial print(factorial(5)).

    print(factorial(5)) print(factorial(5)).

    What is Python factorial program?

    To find the Python factorial of a number, the number is multiplied with all the integers that lie between 1 and the number itself. Mathematically, it is represented by “!”. Thus, for example, 5! will be 5 x 4 x 3 x 2 x 1, that is 120. Factorial for negative numbers is not defined.

    How do you write a Python factorial for loop?

    Quick Algo for factorial Program in Python using for loop: Input an integer number from the user. Initialize fact=1. Use for loop to multiply "fact" with all the numbers less than and equal to the number given by the user. Now, print the factorial of that number.