lunes, 7 de octubre de 2013

Algoritmo que calcula el maximo comun divisor de dos numeros(MCD)

Problema: Elaborar un algoritmo en JAVA que permita hallar el mcd de dos numeros enteros positivos y negativos. EL resultado siempre tendra que ser positivo.

Solución:

import java.util.InputMismatchException;
import java.util.Scanner;
/*Fox_94
 * V 1.0   2/10/2013
 */
//Programa que calcula el maximo comun divisor(mcd), el usuario ingresa dos
//numeros enteros tanto positivos como negativos y mostrará
//el valor absoluto de los números
 

public class Mcd {
    public static void main(String[] args){
try{
    Scanner input = new Scanner(System.in);
    System.out.println("Ingrese numero: ");
    int a = input.nextInt();
    System.out.println("Ingrese segundo numero: ");
    int b = input.nextInt();

    if((a!=0 && b ==0)){
        System.out.println(Math.abs(a)); //se aplica la propiedad y su resultado es el valor absoluto de a
    }if((a==0 && b!=0)){
        System.out.println(Math.abs(b)); //se aplica la propiedad y su resultado es el valor absoluto de a
   
    }
        if((a!=0 && b!=0)){ //Si se cumple esta condicion comenzará a calcular el mcd.
   
   
       
    int    numMayor = Math.max(a, b); //Este método devuelve el mayor de dos numeros
    int    numMenor = Math.min(a, b); //Este método devuelve el menor de dos numeros
   
    while(numMenor !=0){ //Este while repite hasta que numMenor sea diferente a 0
int    resto = numMayor % numMenor;
    numMayor = numMenor;    //Guarda numMayor en numMenor
    numMenor = resto;        //Guarda el residuo
   
}
int resultado = numMayor; //Después del ciclo guarda el valor
                            //de numMayor en resultado
System.out.println("El MCD de "+ a+" y "+b+" es: "+Math.abs(resultado) );
//Imprime los valores iniciales a y b tambien resultado.
    }
    if((a==0 && b ==0)){ // Por la propiedad si los dos son 0 no está definido
        System.out.println("No esta definido");
    }
}catch(InputMismatchException e){
    System.out.println("Error, solo se pueden ingresar numeros ");
}
    }
    }

   
Luego de hacer pruebas el resultado será:
Ingrese numero:
-85
Ingrese segundo numero:
20
El MCD de -85 y 20 es: 5

   

1 comentario: