Algorithme : déterminer la première puissance qui dépasse une valeur - Exercice 1

10 min
20
On considère la fonction Python ci-dessous. Le nombre aa est un réel strictement supérieur à 11 et seuil est un nombre positif.
Question 1

Que valent les variables pp et nn après le premier passage dans la boucle while ? Après le deuxième passage ?

Correction
Au départ, n=0n=0 et p=1=a0p=1=a^{0}.
  • Après le premier passage : p=1×a=ap=1\times a=a et n=1n=1.
  • Après le deuxième passage : p=a×a=a2p=a\times a=a^{2} et n=2n=2.
  • À chaque passage, pp est multiplié par aa et nn augmente de 11 :
    on a toujours p=anp=a^{n}
    Question 2

    Quelle valeur renvoie l'appel premiere_puissance(2, 1000) ? On présentera les étapes dans un tableau.

    Correction
    La boucle continue tant que p≤1  000p\leq 1\;000. On note les valeurs successives de nn et de p=2np=2^{n} :
    Pour n=10n=10, on obtient p=1  024>1  000p=1\;024\gt 1\;000 : la boucle s'arrête.
    premiere_puissance(2, 1000) renvoie 1010
    Question 3

    Interpréter ce résultat.

    Correction
    29=512≤1  0002^{9}=512\leq 1\;000 et 210=1  024>1  0002^{10}=1\;024\gt 1\;000.
    1010 est le plus petit entier nn tel que 2n>1  0002^{n}\gt 1\;000
    Question 4

    Sans ordinateur, déterminer la valeur renvoyée par premiere_puissance(3, 500).

    Correction
    On calcule les puissances successives de 33 : 31=33^{1}=3 ; 32=93^{2}=9 ; 33=273^{3}=27 ; 34=813^{4}=81 ; 35=2433^{5}=243 ; 36=7293^{6}=729.
    35=243≤5003^{5}=243\leq 500 et 36=729>5003^{6}=729\gt 500, donc :
    la fonction renvoie 66

    Signaler une erreur

    Aide-nous à améliorer nos contenus en signalant les erreurs ou problèmes que tu penses avoir trouvés.

    Connecte-toi ou crée un compte pour signaler une erreur.