# Liste des diviseurs d'un nombre entier
def liste_diviseurs(nombre):
liste = []
for diviseur in range(1,nombre+1):
if nombre % diviseur == 0:
liste.append(diviseur)
return liste
# Déterminer si un nombre est premier
def est_premier(nombre):
for diviseur in range (2,nombre):
if nombre % diviseur == 0:
return False
return True
# Liste des nombres premiers dans un intervalle
def liste_nombres_premiers(min, max):
liste = []
for i in range(min, max+1):
if est_premier(i):
liste.append(i)
return liste
# Recherche du maxmimum dans une liste
# NOTE : on peut aussi utiliser la fonction min(liste)
def minimum_liste (liste):
minimum = liste[0]
for element in liste:
if element < minimum:
minimum = element
return minimum
# Recherche du maximum dans une liste
# NOTE : on peut aussi utiliser la fonction max(liste)
def maximum_liste(liste):
maximum = liste[0]
for element in liste:
if element > maximum:
maximum = element
return maximum
# Echanger deux variables
# plus simple dans une liste, on utilisera : liste[i], liste[i+1] = liste[i+1], liste[i]
def echange(valeur1, valeur2):
tmp = valeur1
valeur1 = valeur2
valeur2 = tmp
return (valeur1,valeur2)
# La suite de Fibonacci se détermine de la façon suivante :
# u0 = 1 u1 = 1 u2 = u0 + u1 u3 = u2 + u1 ...
# le terme suivant est la somme des deux termes précédents
def suite_fibonacci(n):
suite = []
u0 = 0
u1 = 1
suite.append(u0)
suite.append(u1)
for i in range(n):
terme_suivant = u0 + u1
suite.append(terme_suivant)
u0 = u1
u1 = terme_suivant
return suite
# Méthode 1
def factorielle(nombre):
result = 1
if nombre == 0 or nombre == 1:
return 1
else:
for i in range(nombre, 1, -1):
result = result * i
return result
# Méthode 2 : de façon récursive
def factorielle_recursive(nombre):
if nombre == 0 or nombre == 1:
return 1
else:
return nombre * factorielle_recursive(nombre-1)
Parmi les algorithmes souvent rencontrés dans les exercices, on retrouve aussi les algorithmes de tri. A voir dans une rubrique dédiée plus loin...