Calcul factoriel en Python

  1. Calculer le factoriel d’un nombre en utilisant la méthode d’itération en Python
  2. Calculer la factorielle d’un nombre en utilisant la récursion en Python
  3. Calculer le facteur d’un nombre en utilisant la fonction math.factorial() en Python

Un factoriel d’un nombre est le produit de tous les entiers positifs inférieurs ou égaux à ce nombre. Par exemple, le factoriel de 5 est le produit de tous les nombres qui sont inférieurs et égaux à 5, c’est-à-dire 5 * 4 * 3 * 2 * 1, qui est égal à 120. Par conséquent, la factorielle du nombre 5 est 120.

Maintenant, écrivons une fonction Python pour calculer la factorielle d’un nombre. Il y a deux façons d’écrire un programme factoriel en Python, l’une en utilisant la méthode d’itération et l’autre en utilisant la méthode récursive.

Calculer le factoriel d’un nombre en utilisant la méthode d’itération en Python

Le programme factoriel utilisant la méthode d’itération n’est rien d’autre que l’utilisation de boucles dans notre programme comme la boucle for ou la boucle while. En écrivant un programme itératif pour factoriel en Python, nous devons vérifier trois conditions.

  1. Le nombre donné est négatif : Si le nombre est négatif, alors nous dirons simplement que nous ne pouvons pas trouver la factorielle parce que la factorielle d’un nombre négatif n’existe pas.
  2. Le nombre donné est zéro : Si le nombre est zéro, alors nous allons simplement imprimer 1 parce que la factorielle d’un nombre zéro est 1.
  3. Le nombre donné est positif : Si le nombre est positif, alors nous trouverons seulement sa factorielle.
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)) 

Production :

Factorial of 5 is 120

Calculer la factorielle d’un nombre en utilisant la récursion en Python

La récursion n’est rien d’autre que le fait d’appeler la même fonction encore et encore. Grâce à la récursivité, nous pouvons écrire moins de lignes de code, qui seront beaucoup plus lisibles que le code que nous écrirons en utilisant la méthode itérative.

Chaque fois que nous appelons une fonction de récursivité, une pile de récursivité est créée en mémoire. Cette pile de récursivité possède un compteur de programme, qui garde la trace de l’instruction à exécuter après que la fonction de récursivité ait terminé son exécution.

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

Production :

Factorial of 5 is 120

Calculer le facteur d’un nombre en utilisant la fonction math.factorial() en Python

Vous voulez écrire une fonction factorielle en une seule ligne ? Cela vous semble impossible ? Il existe un moyen d’écrire une fonction factorielle en une seule ligne de code. Cela peut être fait en utilisant le module math. Dans le module “math”, il y a une fonction factorial pour calculer la factorielle d’un nombre.

Vous devez importer cette fonction depuis le module mathématique, l’appeler dans votre programme et lui passer le nombre dont vous voulez calculer la factorielle. Voir l’exemple ci-dessous.

from math import factorial

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

Production :

Factorial is 120

Article connexe - Python Math

  • Coefficient binomial en Python
  • Vérifier les valeurs NaN en Python