En la actualidad existen muchos algoritmos computacionales que simulan el algoritmo de Euclides. A continuación te presentamos algunos de ellos:
***
En Java:
***Primero se declara una función llamada "Euclides", la cual se evaluará en las variables enteras "n1" y "n2".
intEuclides(intn1,intn2) {
***A continuación se genera un ciclo en el cuál se obtiene el residuo de la división entre n1 y n2 mediante "%", el proceso se repite hasta que el residuo sea cero, y por el algoritmo explicado al inicio, sabemos que el penúltimo residuo es el MCD.
intr=n1
while(r!=0) {
n1=n2;
n2=r;
r=n1
}
returnn2;
}
***
En C:
***En las siguientes dos líneas lo que hace el código es llamar a 2 tipos de librerías que necesita el programa para poder hacer operaciones algebraicas, las librerías son "stdio.h" y "stdlib.h".
#include<stdio.h>
#include<stdlib.h>
***"int main()" Es la función principal del programa, dentro de ésta se deben declarar las variables y funciones globales que se utilizarán en todo el programa.
intmain()
{
***Aquí se coloca la palabra “int” la cual está declarando la existencia de tres números enteros, "printf" permite que el usuario pueda introducir un valor, el cual se le asignara a "n1" con ayuda de "scanf". El mismo proceso se hace para "n2"
intr=0,n1,n2;
printf("introduzcan1:");
scanf("%d",&n1);
printf("introduzcan2:");
scanf("%d",&n2);
***A continuación se genera un ciclo de tipo "if", lo que se hace es sacar el residuo del cociente de los dos números que se introdujeron, mediante "%", proceso se repite varias veces hasta que el residuo sea cero, como se explicó al inicio de la unidad.
if(r==0)
{
while(n2>0)
{
r=n2%n1;
n1=n2;
n2=r;
};
***Finalmente "print" muestra en la pantalla el valor del MCD y para finalizar el programa la función principal se regresa a cero mediante "return 0".
printf("elMCD:%d",&n1);
return0;
}
}
***
En C++:
***En las siguientes dos líneas lo que hace el código es llamar a 2 tipos de librerías que necesita el programa para poder hacer operaciones algebraicas, las librerías son "stdio.h" y "stdlib.h".
#include<stdio.h>
#include<stdlib.h>
usingnamespacestd;
***"int mcd(int x, int y)" Es una función, en la cual se está declarando que se va a trabajar con dos valores enteros, "x" y "y".
intmcd(intx,inty) {
>***Dentro de la función se declara otra variable , "t", y después se analiza como son los valores de "x" y "y", si estos son negativos, se cambian a positivos, a la variable t se le asigna el valor más pequeño entre "x" y "y".
intt;
x=(x<0)?−x:x;
y=(y<0)?−y:y;
t=(x<y)?x:y;
***A continuación se genera un ciclo de tipo "while", lo que se hace es sacar el residuo del cociente de "x" entre "t" y "y" entre "t", el ciclo se detiene cuando alguno de los dos residuos es cero, lo cual significa que ya se encontró el MCD.
while((x%t)||(y%t))
−−t;
returnt;
}
inteuc(intx,inty) {
return(!y)?x:euc(y,x%y);
}
***A continuación se solicita al usuario que introduzca el valor de "x" y "y" mediante "cout" y "cin". Finalmente se imprime el valor del MCD, el cual se obtiene al llamar la función “mcd()”, evaluada en los valores "x" y "y" que se acaban de introducir.
intmain()
{
intx,y;
cout<<"x:";
cin>>x;
cout<<"y:";
cin>>y;
cout<<"MCD:"<<mcd(x,y)<<endl;
cout<<"MCD(euclides):"<<euc(x,y)<<endl;
}
***
La imagen muestra la representación de la secuencia de un algoritmo, tal algoritmo es la espiral de Teodoro cuya geometría tiene varias propiedades incluyendo una que se relaciona con el MCD.