[ Foro de Java ]

Duda con ejercicio: Factores primos

14-Apr-2014 03:18
Leonardo Teseyra
2 Respuestas

Hice este ejercicio:
Ejercicio de repaso 8.6.10: Crear un programa que descomponga un número (que teclee el usuario) como producto de su factores primos. Por ejemplo, 60 = 2 · 2 · 3 · 5 (pista: puede ser más fácil escribirlo terminando siempre en " · 1", así: "60 = 2 · 2 · 3 · 5 · 1")
de esta manera:

 
import javax.swing.JOptionPane;
public class ejercicio38 {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		String d = "";
 
		int n=Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese un numero:", "Descomposicion", JOptionPane.QUESTION_MESSAGE));
 
		while (n%2==0){
 
			d=d+"2.";
 
			}
		while (n%3==0){
 
			d=d+"3.";
		}
 
		while (n%5==0){
 
			d=d+"5.";
 
		}
 
		while (n%7==0){
 
			d=d+"7.";
 
		}
		JOptionPane.showMessageDialog(null, "El numero descompuesto es: "+d);
	}
 
}
 


pero al ejecutarlo, pide el numero y despues no muestra el resultado. que estoy haciendo mal?


16-Apr-2014 01:03
Nacho Cabanes (+30)

Como primer detalle: órdenes como estas provocan un bucle sin fin, que deja el ordenador colgado:

 
while (n%2==0){ 
  d=d+"2."; 
} 
 


Léelo en voz alta, y piensa qué ocurre con el número 6: mientras 6 sea par, añade "2" al final de "d". ¿Verdad que 6 siempre será par?

Segundo detalle: tu programa no va a funcionar "del todo" cuando esté corregido, porque hay más números primos por encima del 7, como por ejemplo el 11 y el 13. Prueba a hallar los factores primos de 2431.


22-Apr-2014 04:55
Leonardo Teseyra

xD, debo haber estado dormido, es obvio! jaja gracias ahora veo como lo armo.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)