C'est tout à fait ça Ebichu, bravo à toi !
Cette question est en cours sur 2 autres sites et reste sans réponse pour l'instant (cependant pas d'énigme en 2 temps comme ici).
Je donne ma propre version pour archivage, avec quelques nuances, et aussi la réponse si "a0" est multiple de 3.
Supposons tout d'abord qu'il existe "a" ( " a " considéré ici comme impair et premier avec 3. Dans les autres cas, un petit aménagement sera à apporter par la suite) et "b" tel que :
(3*....( 3 * ( (3 a + b) / 2 ^ p1) + b ) / 2 ^ p2...) + b ) / 2 ^ pn = a avec p1+p2+...pn = m
On développe en séparant les coefficients des " a " et des " b ", et on aboutit à :
( 2 ^ m - 3 ^ n ) * a = b * ( 3^(n-1) + ( 2 ^ p1 ) * 3 ^ (n-2) + ( 2 ^ ( p1+ p2 ) ) * 3 ^ (n - 3) +......2 ^ ( m - pn) )
Soit k * a = j * b
Il suffit de donner à " a " la valeur " j " et à " b " la valeur " k " pour obtenir l'égalité.
Notons au passage (ne sert pas pour la démo) qu'il suffit de trouver un " k " qui divise " j " pour infirmer la vraie conjecture, car alors il suffit de remplacer "b" par 1.
Le fait de passer de l'écriture de l'algorithme initial à l'écriture synthétique k * a = j * b n'est équivalent que si on est sûr que les valeurs prises pour " a " et " b " donnent toujours un nombre entier au fur et à mesure des multiplications et des divisions, ce qui n'est pas évident au premier abord. Car on pourrait avoir un résultat final correct mais avec des valeurs intermédiaires non entières. Mais la réserve est levée dès qu'on se rend compte que, si dans l'algorithme multiplications / divisions successsives, un nombre intermédiaire venait à perdre son caractère entier du fait de trop ou pas assez de divisions par 2, il serait impossible d'obtenir, à la fin des n itérations, un nombre entier.
L'équivalence est donc acquise.
Le nombre d'itérations et les différentes divisions successives sont totalement décrites par un n uplet caractéristique : ( p1, p2, ....pn). Et ce " n uplet " permet le calcul de k et j.
Notons que pour le calcul de " j " on ne se sert pas de la dernière puissance de 2 : pn. Autrement dit j (p1, p2, ....pn ) = j ( p1, p2, ....p'n) avec pn et p'n distincts.
En revanche, pour calculer k, on a besoin de m, somme de toutes les puissances de 2, mais ni de l'ordre ni de la répartition des différentes puissances de 2.
k ( p1, p2, ...pn ) = k (p'1, p'2,.....p'n) sous la seule condition que p1 + p2 + ....pn = p' 1 + p' 2 +....p' n.
Ainsi, après le calcul de k à partir d'un n uplet, " b" étant fixé par la valeur k, on peut associer un certain nombre d'autres n uplets (et donc autant de " j " et de " a " ) selon la répartition des différentes puissances de 2 au delà de la valeur minimale 1. Le nombre des n uplets est un simple calcul combinatoire.
Cas particulier
On montre facilement que j (1, 1,.....1) = - k = - 2 ^ n + 3 ^ n.
On a alors k * a = - k * b et donc en prenant b = -a l'algorithme "pas à pas" donne 3a - a = 2a qui donne " a ". C'est un justificatif court à l'égalité ci-dessus.
C'est à partir de ce cas particulier qu'on va trouver la solution au problème posé.
Soit " a " posé.
2 ^ ( r * phi(a)) - 3 ^ ( r * phi(a) ) = k = - q * a, r permet d'ajuster le nombre d'itérations dont on a besoin. j vaut ici q * a
Comme 2 ^ phi(q) = 1 [q], on a 2 ^ ( phi(q) + r * phi(a) ) - 3 ^ ( r * phi(a) ) = q * c = k'
Et d'autre part j (1 , 1 ,.... ..1) = j ( 1 , 1 , .....1, 1 , phi(q) + 1 ), n uplet avec n = r * phi(a).
Comme la résolution de l'équation générale est k' * a = j * b
(q * c) * a = (q * a ) * b
En attribuant à " b " la valeur " c ", on a une solution pour " a ".
Si " a " est pair, on ajustera éventuellement " r ". Si " a " est un multiple de 3 ^ d, on prendra c' = c * 3 ^ d.