Desde la función principal se tendrá que pedir al usuario dos números y calcular el máximo común divisor haciendo una llamada a la función creada.
Ejemplo:
Introduzca primer número:
> 3
Introduzca segundo número:
> 9
El máximo comun divisor de 3 y 9 es 3
Introduzca primer número:
> 6
Introduzca segundo número:
> 20
El máximo comun divisor de 6 y 20 es 2
> 3
Introduzca segundo número:
> 9
El máximo comun divisor de 3 y 9 es 3
Introduzca primer número:
> 6
Introduzca segundo número:
> 20
El máximo comun divisor de 6 y 20 es 2
SOLUCIÓN EN JAVA:
package mcd;
import javax.swing.JOptionPane;
public class MCD {
static int mcd(int a, int b){
int divisor;
//Lo primero es seleccionar el menor de los dos
if (a>b)
divisor=b;
else
divisor=a;
//Y ahora empiezo a probar si ese número es el mcd o lo son
//los sucesivos inferiores a él
while ((a%divisor!=0 || b%divisor!=0) && divisor>1)
divisor--;
//Para salir del bucle while, se deben cumplir una de las dos condiciones:
//- divisor es un mcd de ambos números
//- divisor ha llegado a valer 1, con lo cual ése es el máximo común divisor
return divisor;
}
public static void main(String[] args) {
int valor1, valor2, resultado;
//Pido al usuario los dos numeros para calcular el mcd:
try{
valor1=Integer.parseInt(JOptionPane.showInputDialog("Introduzca primer número:"));
valor2=Integer.parseInt(JOptionPane.showInputDialog("Introduzca segundo número:"));
//y ahora calculo el máximo común divisor llamando a la función "mcd"
resultado=mcd(valor1,valor2);
JOptionPane.showMessageDialog(null, "El máximo común divisor de "+valor1+" y "+valor2+" es "+resultado);
} catch (NumberFormatException e){
JOptionPane.showMessageDialog(null, "Formato de número incorrecto");
}
}
}
porque usar el or y no el and??
ResponderEliminar