Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Programa para calcular o MDC de dois números inteiros
- * by Pierry A. Pereira <pierryangelo@gmail.com>
- */
- #include <stdio.h>
- int main()
- {
- int maximo, a, b;
- printf( "Insira o primeiro numero: " );
- scanf( "%d", &a );
- printf( "Insira o segundo numero: " );
- scanf( "%d", &b );
- /* A função MDC pode retornar o MDC ou -1,
- caso ela retorne -1 deve-se ao fato de que
- há uma divisão por zero */
- maximo = mdc( a, b );
- if ( maximo != -1 )
- printf( "O valor maximo: %d", maximo );
- else
- printf( "Impossivel calcular o valor maximo!" );
- return 0;
- }
- /* Definição da função MDC */
- int mdc( int x, int y )
- {
- int primeiro, segundo, auxiliar;
- /* Necessario para determinar o maior numero, pois
- a lógica do loop é baseada na ordenação dos números. */
- if ( x > y ) {
- primeiro = x;
- segundo = y;
- }
- else if ( y > x ) {
- primeiro = y;
- segundo = x;
- }
- else {
- primeiro = segundo = x;
- }
- /* Previne erro de divisão por zero */
- if ( segundo == 0 || ( segundo == 0 && primeiro == 0 ) )
- return -1;
- else {
- /* Enquanto o resto da divisão do primeiro pelo segundo for diferente de zero
- o loop continua sendo executado. */
- while ( ( primeiro % segundo ) != 0 )
- {
- /* Faz uma cópia da primeira variável */
- auxiliar = primeiro;
- primeiro = segundo;
- segundo = auxiliar % segundo;
- }
- return segundo;
- }
- } /* Fim da função MDC */
Add Comment
Please, Sign In to add comment