lunes, 1 de octubre de 2001

Implementación del algoritmo de Euclides. Cálculo del máximo común divisor de dos números enteros positivos. Un ejercicio de programación en C/C++

/////////////////////////////////////////////////////////////////
// Algorisme d'Euclides                                        //
// Cálcul del máxim comú divisor de dos nombres enters positius//
// Joan Aranès Clua			                                   //		
// 17/12/2001				                                   //		
/////////////////////////////////////////////////////////////////
 

#include <stdio.h>
int mcd(int,int);


void main(){
    int m,n;

    printf("Introduïu dos nombres enters separats per un espai\n");

    scanf("%d %d",&m,&n);
    printf("\n\nmcd(%d,%d) = %d\n",m,n,mcd(m,n));

}

int mcd(int x,int y)
{

    int reste; // reste i quocient de les divisions
	int dividend,divisor;

	// DIVISIONS SUCCESSIVES
	// primera divisió:
      dividend=(x>y)?x:y;
	divisor=(y<x)?y:x;
	reste=dividend%divisor;
	// per a les divisions següents
	// s'asigna al nou divisor  el valor de l'antic reste
	// fins arribar a una divisió amb reste nul
	// el divisor d'aquesta darrera divisió és el m.c.d.{x,y}
      while(reste>0)
	 {
	  dividend=divisor;
	  divisor=reste;
        reste=dividend%divisor; //         
       }

    return divisor;

}



No hay comentarios:

Publicar un comentario

Gracias por tus comentarios