Cet algorithme dû à Lagrange donne le développement en fraction continue d'un nombre quadratique
(u+√D)/v, avec u, v, D entiers, D non carré.
Fonctionnement
L'algorithme nécessite v divisant D-u².
Si v ne divise pas D-u², on peut remplacer u par u|v|, D par Dv² et v par v|v| et alors v|v| divise bien Dv²-u²v²,
tout en représentant le même nombre quadratique.
Posons U0=u, V0=v, a=E[√D],
avec la notation E[x]=partie entière de x.
Et les variables suplémentaires X, Y, P X-1=-u, X0=v
Y-1=1, Y0=0
P-1=0, P0=1