/* File: mcd3.c */
/* Time-stamp: "2001-03-20 11:54:12 calvanes" */
/* Scopo: cicli indefiniti
          conrollo sui dati in ingresso */

/* Legge due numeri interi positivi e calcola il massimo comun divisore.
   Utilizza l'algoritmo di Euclide nella versione senza resti.
   Effettua un controllo sulla validita` dei due numeri letti. */

#include <stdio.h>

int main(void)
{
  int m, n;

  do {
    printf("Due interi positivi? ");
    scanf("%d%d", &m, &n);
    if (m <= 0 || n <= 0)
      printf("Errore: i numeri devono essere maggiori di 0\n");
  } while (m <= 0 || n <= 0);

  /* 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("Il massimo comun divisore di %d e %d e` ", m, n);

  while (m != n)
    if (m > n)
      m -= n;
    else
      n -= m;

  printf("%d\n", m);

  return 0;
}