Bonsoir,
J'ai plus ou moins avancé dans la séquence en incluant un "ELSE" qui si la condition c=0 n'est pas vérifiée, reprend le résultat de la différence de ( n- log[2](n) ) et refait l'opération 1; c'est à dire calcule le log[2] de la différence.
Voici ce que ça donne, quoiqu'il y ait encore des instructions à inclure :
=====================
restart;
Decomposition := proc (n)
local a, b, c, d;
a := evalf(log[2](n));
b := floor(a);
c := evalf(n-2^b);
if c = 0 then print(Decomposition = 2*puissance(b)) else d := evalf(log[2](%)) :
end if :
end proc :
Decomposition(67);
=====================
-----