École des Mines de Douai – FI 1A TD d’Algorithmique et Programmation
TD d’Algorithmique et Programmation 2
École des Mines de Douai – FI 1A
Exercice 1 : Nombre parfait
Un nombre entier n > 2est dit parfait s’il est égal à la somme de tous ses diviseurs stricts, 1 compris. Écrire une
fonction permettant de tester si un nombre donné est parfait ou non.
Exercice 2 : Crible d’Eratosthène
Cet algorithme permet de trouver tous les nombres premiers d’un intervalle [1, n]. L’intervalle est parcouru et les
nombres qui ne sont pas premiers sont éliminés successivement. Le plus petit nombre premier étant 2, tous les multiples
de 2 sont rayés de l’intervalle [1, n]. Le premier nombre strictement supérieur à 2 qui n’a pas été rayé est lui même
premier. Il s’agit de 3 ; tous les multiples de 3 (à l’exception de lui même) peuvent donc être rayés. Le nombre premier
suivant à n’avoir pas été rayé est 5.
L’algorithme peut s’arrêter lorsque l’on s’apprête à rayer les multiples de p > √npuisque tout nombre non premier
plus petit que na un diviseur premier inférieur ou égal à √n.
1. Comment modéliser l’intervalle [1, n]? (Comparer les différentes modélisations possibles afin de trouver celle qui
nécessitera le moins de manipulations)
2. Écrire une méthode mettant en œuvre le crible d’Eratosthène.
Exercice 3 : Coefficients binomiaux et formule de Pascal
La formule de Pascal est une récurrence double permettant de calculer Cp
npour net pentiers naturels :
Cp
n=Cp
n−1+Cp−1
n−1
1. Écrire une fonction récursive permettant de calculer Cp
n. Cette fonction est-elle efficace selon vous ?
2. Donner une relation de récurrence simple entre Cp
net Cp−1
n−1.
3. Écrire une fonction récursive optimisée basée sur le relation de récurrence trouvée précédemment.
4. Écrire une fonction itérative pour le calcul de Cp
n.
A.D., A.F., G.L., A.K. Page : 1/1