On remarque que dans Z/p^iZ il a p éléments x tel que x=b dans Z/p^iZ (je l'ai pas réellement prouvé mais il me semble que c'est vrai).
Reste à prouver que parmi ces p éléments, il n'y en a qu'un qui convient.
Pour cela, je prendrai mon "x" défini dans les posts précédants. Il suffirait de prouver que parmi les translatés: x+j*p^(i-1) (où j est dans [|0,p-1|] il n'y que pour j=0 que x²=a dans p^i.
Ceci nous donne donc l'algorithme souvhaité pour trouver ledit "x".
On suppose connu b.
Si b convient aussi dans Z/p^iZ alors on s'arrête.
Si b ne convient pas, on essaie avec b+p^(i-1). S'il convient, on s'arrête.
Si b+p^(i-1) ne convient pas, on essaie avec b+2p^(i-1).
Et ainsi de suite.
On est sur de s'arrêter à un moment (précisemment, en au plus p étapes).
On a donc bien un algorithme.
A vérifier, mais ça devrait être bon.