Skip to content

Programmer la factorielle d’un entier naturel en Python

Objectif

Nous cherchons à écrire une fonction en langage Python qui renvoie la factorielle n!=1\times2\times3\times\dots\times n d’un entier naturel n rentré par l’utilisateur.

Première méthode

La variable res est initialisée à 1 qui est :

  • la valeur de 0! ;
  • l’élément neutre pour la multiplication.

La valeur de res est successivement multipliée par n, n-1, … ; 2

				
					def factorielle1(n):
     res=1
     while n>1:
         res=res*n
         n-=1
     return res
				
			

Deuxième méthode

La boucle while est remplacée par une boucle for. Deux cas sont envisagés :

  • si n=0, alors n!=1 ;
  • si n est un entier strictement positif, sa factorielle s’obtient en multipliant n successivement par 2, 3, …, n-1.
				
					def factorielle2(n):
     if n==0:
         n=1
     for i in range(2,n):
         n*=i
     return n
				
			

Troisième méthode

La fonction est récursive. Elle est basée sur la relation :

n!=n\times(n-1)! pour n\in\mathbb{N}^*

				
					def factorielle3(n):
     if n<=1:
         return 1
     else:
         return factorielle3(n-1)*n
				
			

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.