test_puissance_entiere : int -> bool
qui prend en entr´ee l’entier naturel n > 1 et renvoie le bool´een true s’il existe deux entiers
naturels ket mtous deux >1 tels que n=mket false sinon.
iii) D´emontrer que la complexit´e de ce programme est au plus O(nlog2(n) log2(k)).
iv) En d´eduire la fonction :
liste1_puissances_entieres : int -> int list
qui prend en entr´ee l’entier naturel n > 1 et renvoie la liste des entiers naturels compris
entre 2 et nqui sont des puissances enti`eres.
c) En vous inspirant du crible d’Erathosth`ene, ´ecrire la fonction :
liste2_puissances_entieres : int -> int list
qui prend en entr´ee l’entier naturel n > 1 et renvoie la liste des entiers naturels compris entre
2 et nqui sont des puissances enti`eres.
Exercice 2 : parcours en escalier dans un tableau
Soit M une matrice de n+1 lignes et de n+1 colonnes (n > 0), telle que mi,j = 2i3jpour 0 6i6n
et 0 6j6n.
1) ´
Ecrire une fonction remplir de param`etre n, de remplissage du tableau `a deux dimensions repr´esentant
la matrice M.
2) Quel est le nombre total de multiplications de votre algorithme ?
3) ´
Ecrire la fonction pgcd qui a prend pour arguments une matrice M(telle que mi,j = 2i3jpour
06i6net 0 6j6n) et quatre indices i,j,k,ldans [[0, n]] , et retourne pour r´esultat la valeur
du plus grand commun diviseur de mi,j et de mk,l.
4) On dispose d’une matrice M telle que mi,j = 2i3jpour 0 6i6net 0 6j6n, ´ecrire une fonction
pgm qui ´etant donn´e un entier p, 1 6p62n3n, calcule les indices i,jdu plus grand des minorants
de pde la forme 2i3j.
On s’efforcera dans cette question de minimiser le nombre de comparaisons en exploitant la re-
marque qui suit.
Remarque : Si sur la ligne i0le plus grand des minorants de pse trouve en colonne j0, alors sur
la ligne i0+ 1 le plus grand des minorants de pest :
– Soit l’´el´ement qui se trouve sur en (i0+ 1, j0), si mi0+1,j0= 2mi0,j0est inf´erieur ou ´egal `a p.
– Soit l’´el´ement qui se trouve en (i0+ 1, j0−1) , si mi0+1,j0= 2mi0,j0est strictement sup´erieur
`a p, car dans ce cas mi0+1,j0−1=2
3mi0,j0est alors le plus grand des minorants de psur la ligne
i0+ 1.
5) Combien de comparaisons mettant en jeu un ´el´ement de la matrice Meffectue votre algorithme ?
2