Exercice : Algorithmes et histoire des mathématiques

★ Standard

On considère le programme Python ci-dessous, inspiré de la méthode historique de multiplication par duplication (dite « multiplication égyptienne ») :

a = ...
b = 6
p = 0
while b > 0:
    if b % 2 == 1:
        p = p + a
    a = a * 2
    b = b // 2

On cherche à retrouver la valeur initiale attribuée à la variable a au début du programme.

Pour cela, suivre les étapes suivantes :

  1. Dresser le tableau d'exécution du programme étape par étape en exprimant la valeur de la variable p en fonction de la valeur initiale de a.
  2. En déduire la valeur initiale de a sachant qu'à la fin de l'exécution, la variable p contient la valeur $48$.

Saisir la valeur initiale de la variable a.