TD d`Algorithmique et Programmation 2 Exercice 1 : Nombre parfait

publicité
É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 > 2 est 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 > n puisque tout nombre non premier
plus petit que n a 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 Cnp pour n et p entiers naturels :
p
p−1
Cnp = Cn−1
+ Cn−1
1. Écrire une fonction récursive permettant de calculer Cnp . Cette fonction est-elle efficace selon vous ?
p−1
2. Donner une relation de récurrence simple entre Cnp et Cn−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 Cnp .
A.D., A.F., G.L., A.K.
Page : 1/1
Téléchargement