Máximo común divisor y potencia en java - jcreator
Realizar un programa que lea un numero entero y le saque el máximo común divisor y de método recursivo la potencia al mismo entero.
1 Respuesta
Respuesta de alejosoft
1
1
alejosoft, 3 años de experiencia como Ingeniero de Sistemas, I speak English...
En tu pregunta creo que hay un error ya que el máximo común divisor no se le puede sacar a un solo numero... se necesitan por lo menos 2 números para poder sacar un número más grande posible que permite dividir a esos números... así que tu programa quedaría más o menos así: import javax.swing.*; public class holaMundo { public static void main(String[] args) { int n1 = Integer.parseInt(input("Digite el primer numero:")); int n2 = Integer.parseInt(input("Digite el segundo numero:")); // primero que todo buscamos el menor de los 2 numeros int menor = n1 < n2? n1:n2; // ahora comenzamos a dividir ambos numeros con el menor // y lo vamos decrementando hasta encontrar el numero // cuya division de como residuo cero. int MCD = menor; // comenzamos suponiendo que el numero menor es el MCD int aux = menor; // comenzamos suponiendo que el numero menor es el MCD while( aux >= 1 ){ // la suma de los residuos de las 2 divisiones int residuos = (((n1 % aux) + (n2 % aux))); if ( residuos == 0 ){ MCD = aux; break; } aux--; } JOptionPane.showMessageDialog(null,"El Maximo Comun Divisor de "+n1+" y "+n2+" es: "+MCD); // ahora vamos con la potencia recursiva int base = Integer.parseInt(input("Digite la base:")); int exp = Integer.parseInt(input("Digite el exponente:")); JOptionPane.showMessageDialog(null,"La potencia de "+base+" elevado a la "+exp+" es: "+potencia(base,exp)); System.exit(0); } // metodo para pedir un dato por pantalla static String input(String mensaje){ return JOptionPane.showInputDialog(null,mensaje); } // metodo para calcular la potencia de un numero recursivamente static int potencia( int base, int exponente ){ if ( exponente == 0 ){ return 1; } return base * potencia(base,exponente-1); } }