/*
 * arquivo: mdc3_func.c
 *
 * Este programa recebe 3 numeros inteiros positivos a, b, c  e calcula o
 * maximo divisor comum (mdc) desses 3 numeros (usando o algoritmo de
 * Euclides). Para isso, define uma funcao chamada mdc que tem dois parametros 
 * inteiros m e n, e calcula o valor do mdc de m e n.
 */

#include <stdio.h>

/* prototipo da funcao *******************************/

int mdc(int m, int n);

/* ***************************************************/

int main()
{
    int a, b, c, resp1, resultado;
    printf("Entre com os valores de a, b e c : ");
    scanf("%d %d %d", &a, &b, &c);
    printf("a = %d,    b = %d,   c = %d \n ", a,b,c);
   
    resp1 = mdc(a, b); 
    resultado = mdc(resp1, c);                                 

    printf("O mdc de %d, %d, %d e' %d\n", a,b,c, resultado);
    
    return 0;
}

/* 
 * Funcao: mdc
 * Uso: mdc(m, n)
 * Esta funcao devolve o maximo divisor comum dos argumentos m e n
 */

int mdc(int m, int n)
{
    int resto;

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


/*
 * Exercício: mude este programa de modo a resolver o problema em 
 * que são dados n números inteiros positivos e deseja-se calcular
 * o mdc desses números.
 */