1. Ex´ecuter cet algorithme sur les entr´ee 19, 25, 39 et 143.
2. En utilisant Premier comme op´eration ´el´ementaire, ´ecrire un algorithme Affiche Premiers
permettant, ´etant donn´e un entier naturel n, d’afficher tous les nombres premier inf´erieurs
`a n.
Exercice III.4 Pour chacun des probl`emes suivants, donner un algorithme permettant de le
r´esoudre, puis lister les op´erations ´el´ementaires qu’il utilise et donner leur nombre.
(i) Affichage des nombres pairs de 0 `a 20.
(ii) Calcul du pgcd de deux nombres entiers naturels net m.
(iii) Calcul du n-`eme nombre premier.
Algorithme 2 Factorielle(entier n)
Entr´ee : Un entier naturel n > 0
Sortie : Calcule la factorielle de n
1: Si n= 1 Alors
2: Retourner 1
3: Sinon
4: Retourner n∗Factorielle(n−1)
5: Fin Si
Exercice III.5 (R´ecursivit´e)
Il est possible, au sein d’un algorithme, de faire appel `a cet algorithme sur une entr´ee de taille plus
petite. Ce proc´ed´e est appel´e la r´ecursivit´e. L’algorithme 2 illustre cette technique pour le calcul
de la factorielle
1. Ex´ecuter cet algorithme sur les entr´ees 4 et 5.
2. Donner un algorithme r´ecursif pour le calcul de la somme S(n) =
n
X
i=0
i.
Exercice III.6 (Probl`eme de l’arrˆet)
1. Montrer que tous les programmes peuvent ˆetre vus comme des mots finis sur l’alphabet
{0,1}.
2. Consid´erons un programme prog. Une question naturelle sur ce programme est de savoir,
´etant donn´ee une entr´ee input, si l’ex´ecution de prog sur input s’arrˆete ou non (c’est-`a-dire
boucle infiniment).
Nous supposons qu’il existe un programme, intitul´e Stop, qui ´etant donn´e en entr´ee un
programme prog et une entr´ee input de ce programme, retourne 1 si l’ex´ecution de prog sur
input s’arrˆete, et retourne 0 sinon :
Stop(prog,input) = 1si prog(input) termine
0sinon.
Ecrire un algorithme Fou qui, ´etant donn´e en entr´ee un mot prog d´ecrivant un programme,
boucle inifiniment si ce programme s’arrˆete sur l’entr´ee prog, et s’arrˆete sinon.
3. Consid´erer l’ex´ecution du programme Fou sur lui-mˆeme. Conclure que le programme Stop ne
peut pas exister. Ceci d´emontre qu’il n’existe pas d’algorithme capable de d´eterminer, pour
n’importe quel programme, si celui-ci s’arrˆete ou non.
2