Puissances

On rappelle que :

  • le nombre \(a^n\) est le nombre \(a \times a \times a \times \dots \times a\), où le facteur \(a\) apparaît \(n\) fois,
  • en langage Python, l’instruction t[-1] permet d’accéder au dernier élément du tableau t.

Dans cet exercice, l’opérateur ** et la fonction pow ne sont pas autorisés.

Programmer en langage Python une fonction liste_puissances qui prend en argument un nombre entier non nul a, un entier strictement positif n et qui renvoie la liste de ses puissances \(\rm{[a^1, a^2, ..., a^n]}\).

Programmer également une fonction liste_puisssances_borne qui prend en argument un nombre entier a supérieur ou égal à 2 et un entier borne, et qui renvoie la liste de ses puissances, à l’exclusion de \(\rm{a^0}\), strictement inférieures à borne.

Exemple

🐍 Console Python
>>> liste_puissances(3, 5)
[3, 9, 27, 81, 243]
>>> liste_puissances(-2, 4)
[-2, 4, -8, 16]
>>> liste_puissances_borne(2, 16)
[2, 4, 8]
>>> liste_puissances_borne(2, 17)
[2, 4, 8, 16]
>>> liste_puissances_borne(5, 5)
[]

Attention

Il est interdit d'utiliser ** ou pow

Compléter le code ci-dessous

###
# Testsbksl-nlassert listepy-undpuissances(3, 5) == [3, 9, 27, 81, 243]bksl-nlassert listepy-undpuissances(-2, 4) == [-2, 4, -8, 16]bksl-nlassert listepy-undpuissancespy-undborne(2, 16) == [2, 4, 8]bksl-nlassert listepy-undpuissancespy-undborne(2, 17) == [2, 4, 8, 16]bksl-nlassert listepy-undpuissancespy-undborne(5, 5) == []bksl-nlbksl-nl# Autres testsbksl-nlassert listepy-undpuissances(-2, 10) == [-2, 4, -8, 16, -32, 64, -128, 256, -512, 1024]bksl-nlassert listepy-undpuissancespy-undborne(-2, 1000) == [-2, 4, -8, 16, -32, 64, -128, 256, -512]bksl-nl 5/5
def listepy-undpuissances(a, n):bksl-nl ...bksl-nlbksl-nldef listepy-undpuissancespy-undborne(a, borne):bksl-nl ...bksl-nlbksl-nl# Testsbksl-nlassert listepy-undpuissances(3, 5) == [3, 9, 27, 81, 243]bksl-nlassert listepy-undpuissances(-2, 4) == [-2, 4, -8, 16]bksl-nlassert listepy-undpuissancespy-undborne(2, 16) == [2, 4, 8]bksl-nlassert listepy-undpuissancespy-undborne(2, 17) == [2, 4, 8, 16]bksl-nlassert listepy-undpuissancespy-undborne(5, 5) == []bksl-nlbksl-nlbksl-nldef listepy-undpuissances(a, n):bksl-nl puissances = [a]bksl-nl for i in range(n-1):bksl-nl puissances.append(puissances[-1] py-str a)bksl-nl return puissancesbksl-nlbksl-nldef listepy-undpuissancespy-undborne(a, borne):bksl-nl puissances = []bksl-nl valeur = abksl-nl while valeur < borne:bksl-nl puissances.append(valeur)bksl-nl valeur = valeur py-str abksl-nl return puissancesbksl-nlbksl-nlbksl-nl