{ File: mcd1.pas } { Scopo: cicli indefiniti con sentinella } program MassimoComunDivisore; { Legge due numeri interi positivi e calcola il massimo comun divisore. Utilizza la ricerca sequenziale di un divisore comune. } var a, b, { i due numeri letti } mcd : 1..MAXINT; { il massimo comun divisore } trovato : boolean; { sentinella } begin write('Due interi positivi ? '); readln(a, b); { inizializza mcd al minimo tra a e b} if a <= b then mcd := a else mcd := b; trovato := FALSE; while (mcd >= 1) and (not trovato) do begin if ((n mod mcd) = 0) and ((m mod mcd) =0) then trovato := TRUE else mcd := mcd - 1; write('Massimo comun divisore di ', a, ' e ', b, ' : ', mcd); end. { MassimoComunDivisore }