{ 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 }