Exercice — dans l'esprit des sujets d'informatique
On demande une solution algorithmique de deux modules `PGCD` et `PGCDTous` (devoir i-c3-01) pour des entiers naturels — chapitre bases/arithmétique, pas récursivité.
- Écrire le module `PGCD(a,b)` selon l'algorithme d'Euclide itératif (`mod` jusqu'à reste nul) pour deux entiers.
- Écrire le module `PGCDTous(T[1..n])` qui calcule le PGCD de tous les entiers du vecteur en enchaînant Euclide : puis .
- Trace : `PGCDTous([12,18,30])` — valeurs successives de l'accumulateur.
Voir la correction commentéeAprès avoir posé votre démarche
1. Euclide.
```
DEF FN PGCD(a, b : entier) : entier
Variables r : entier
Début
TantQue b ≠ 0 faire
r ← a mod b ; a ← b ; b ← r
FinTantQue
Retourner a
Fin
```
2. PGCDTous.
```
DEF FN PGCDTous(T : vect ; n : entier) : entier
Variables g, i : entier
Début
g ← T[1]
Pour i de 2 à n faire
g ← PGCD(g, T[i])
FinPour
Retourner g
Fin
```
3. ; ; . Résultat 6.