/* File: mcd5.c */
/* Time-stamp: "2001-03-20 11:52:56 calvanes" */
/* Scopo: cicli indefiniti */

/* Legge due numeri interi positivi e calcola il massimo comun divisore.
   Utilizza l'algoritmo di Euclide nella versione con i resti.
   Versione ottimizzata che non fa uso di if-else nel ciclo.
*/

#include <stdio.h>

int main(void)
{
  int m, n, resto;

  printf("Due interi positivi ? ");
  scanf("%d%d", &m, &n);

  /* la stampa del messaggio che utilizza i valori iniziali m e n deve essere
     fatta prima del calcolo in quanto tali valori  vanno perduti */
  printf("Massimo comun divisore di %d e %d : ", m, n);

  while (n > 0) {
    resto = m % n;
    m = n;
    n = resto;
  }

  printf("%d\n", m);
  return 0;
}