{ File: mcd4.pas }

{ Scopo: cicli indefiniti }

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

var
  a, b : 0..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 <> 0) and (b <> 0) do
    if a > b then
      a := a mod b
    else
      b := b mod a;

  if a <> 0 then
    writeln(a)
  else
    writeln(b)
end. { MassimoComunDivisore }