Première Solution:
Fonction Euclide( u : entier v : entier) : entier
Variables
r : entier (* le reste d’une division entière *)
Début
Tant que v 0 faire
r = u mod v
u = v
v = r
Fin Tant que
retourner u
Fin
Variables
u,v : entier (* les deux entiers donnés par l’utilisateur *)
Début
Écrire(« Donner les deux nombres : « )
Lire(u,v)
(* Début question subsidiaire *)
si u=0 et v=0 alors Écrire(« Le PGCD n’existe pas »)
sinon début
si u < 0 alors u := -u
si v < 0 alors v := -v
Écrire(euclide(u,v))
fin
Fin
Deuxième Solution:
Var a, b, PGCD ; Entier
Ecrire « Introduisez le 1er nombre: »
lire a
Ecrire « Introduisez le 2ème nombre: »
lire b
tant que NOT (a*b=0) faire
selon que
1: a mod 2+b mod 2=0 faire PGCD a b 2: a mod 2+b mod 2=1 faire si a mod 2=0 alors a sinon b b alors a sinon b fin si
fin selon
fin tant que
si a=0 alors
Ecrire « PGCD = « , PGCD*b
sinon écrire « PGCD = « , PGCD*a
fin si