L'algorithme d'Euclide étendu permet de calculer l'inverse de b modulo n s'il existe. Rappelons que l'inverse modulo n de b est le nombre entier b-1 tel que b·b-1 (mod n) = 1. Par exemple 7 est l'inverse modulo 9 de 4, car 4·7 (mod 9) = 28 (mod 9) = 1.
|
n0 := n b0 := b t0 := 0 t := 1 q := nombre entier immédiatement inférieur ou égal à n0 / b0 r := n0 - q · b0 Tant que r > 0 faire Début temp := t0 - q · t Si temp >= 0 alors temp := temp mod n, sinon temp := n - ((-temp) mod n) t0 := t t := temp n0 := b0 b0 := r q := nombre entier immédiatement inférieur ou égal à n0 / b0 r := n0 - q · b0 Fin Si b0 <> 1 alors b n'a pas d'inverse modulo n, sinon b-1 mod n = t |
Le programme ci-dessous utilise l'algorithme d'Euclide étendu: