Calcular fatorial em Python

Sahil Bhosale 30 janeiro 2023
  1. Calcular o fatorial de um número usando iteração em Python
  2. Calcular o fatorial de um número usando recursão em Python
  3. Calcule o fatorial de um número usando a função math.factorial() em Python
Calcular fatorial em Python

Um fatorial de um número é o produto de todos os inteiros positivos menores ou iguais a esse número. Por exemplo, o fatorial de 5 é o produto de todos os números que são menores e iguais a 5, ou seja, 5 * 4 * 3 * 2 * 1, que é igual a 120. Portanto, o fatorial do número 5 é 120.

Agora vamos escrever uma função Python para calcular o fatorial de um número. Existem duas maneiras de escrever um programa fatorial em Python, uma usando o método de iteração e outra usando o método recursivo.

Calcular o fatorial de um número usando iteração em Python

O programa fatorial usando o método de iteração nada mais é do que loops em nosso programa como o loop for ou o loop while. Ao escrever um programa iterativo para fatorial em Python, temos que verificar três condições.

  1. O número dado é negativo: Se o número for negativo, então diremos simplesmente que não podemos encontrar o fatorial porque o fatorial de um número negativo não existe.
  2. O número dado é zero: Se o número for zero, então simplesmente imprimiremos 1 porque o fatorial de um número zero é 1.
  3. O número dado é positivo: Se o número for positivo, apenas encontraremos seu fatorial.
def factorial(num):
    if num < 0:
        print("Factorial of negative num does not exist")

    elif num == 0:
        return 1

    else:
        fact = 1
        while num > 1:
            fact *= num
            num -= 1
        return fact


num = 5

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

Resultado:

Factorial of 5 is 120

Calcular o fatorial de um número usando recursão em Python

A recursão nada mais é do que chamar a mesma função repetidamente. Usando a recursão, podemos escrever menos linhas de código, o que será muito mais legível do que o código que iremos escrever usando o método iterativo.

Sempre que chamamos uma função de recursão, uma pilha de recursão é criada na memória. Essa pilha de recursão tem algo chamado contador de programa, que mantém o controle de qual instrução a ser executada depois que a função de recursão terminar sua execução.

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

Resultado:

Factorial of 5 is 120

Calcule o fatorial de um número usando a função math.factorial() em Python

Você quer escrever uma função fatorial em apenas uma linha? Parece impossível para você? Existe uma maneira de escrever uma função fatorial em apenas uma linha de código. Isso pode ser feito usando o módulo math. Dentro do módulo math existe uma função factorial para calcular o fatorial de um número.

Tem que importar esta função do módulo matemático, chamá-la dentro do seu programa e passar o número cujo fatorial deseja calcular. Veja o exemplo abaixo.

from math import factorial

print("Factorial is", factorial(5))

Resultado:

Factorial is 120
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Artigo relacionado - Python Math