{ File: mcd3.pas } { Scopo: cicli repeat conrollo sui dati in ingresso } program MassimoComunDivisore; { Legge due numeri interi positivi e calcola il massimo comun divisore. Utilizza l'algoritmo di Euclide nella versione senza resti. Effettua un controllo sulla validita` dei due numeri letti. } var a, b : integer; begin repeat write('Due interi positivi ? '); readln(a, b); if (a <= 0) or ( b <= 0) then writeln('Errore: i numeri devono essere maggiori di 0'); until (a > 0) and (b > 0); { la stampa del messaggio che utilizza i valori iniziali a e b deve essere fatta prima del calcolo in quanto tali valori vanno perduti } write('Massimo comun divisore di ', a, ' e ', b, ' : '); while a <> b do if a > b then a := a - b else b := b - a; writeln(a) end. { MassimoComunDivisore }