/* File: mcmmcd.c */
/* Time-stamp: "2001-03-20 19:54:23 calvanes" */
/* Scopo: uso di funzioni */

/* Calcolo del minimo comune multiplo e del massimo comun divisore di due
   interi forniti in input. */

#include <stdio.h> 

int massimoComunDivisore(int n1, int n2);

int minimoComuneMultiplo(int n1, int n2);

int main(void)
{ 
  int num1, num2;
  int mcm, mcd;
	
  printf("Inserire due numeri interi: ") ;
  scanf("%d%d", &num1, &num2);
	
  /* chiamata della funzione minimoComuneMultiplo */
  mcm = minimoComuneMultiplo(num1, num2);
	
  /* chiamata della funzione massimoComunDivisore */
  mcd = massimoComunDivisore(num1, num2);
	
  printf("\nIl minimo comune multiplo tra %d e %d e` %d\n", num1, num2, mcm);
  printf("\nIl massimo comun divisore tra %d e %d e` %d \n", num1, num2, mcd);
	
  scanf("%*[^\n]"); getchar();
  printf("\nPremi [INVIO] per terminare\n");
  getchar();

  return 0;
}
	
int minimoComuneMultiplo(int n1, int n2)
{
  return n1 * n2 / massimoComunDivisore(n1, n2);
}

int massimoComunDivisore (int n1, int n2)
  /* calcola il massimo comun divisore di due interi * usando il metodo di
     Euclide  */
{
  int resto, a, b;
	
  a = n1;
  b = n2;
  while (b > 0)	{
    resto = a % b;
    a = b;
    b = resto;
  }
	
  return a;
}