{ File: mcd2.pas }

{ Scopo: cicli indefiniti }

program MassimoComunDivisore;
{ Legge due numeri interi positivi e calcola il massimo comun divisore.
  Utilizza l'algoritmo di Euclide nella versione senza resti. }

var
  a, b : 1..MAXINT;

begin
  write('Due interi positivi ? ');
  readln(a, b);

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