Foro sobre Java SE > numeros primos
Tienes ese JOptionPane dentro de un bucle, así que saldrá tantas veces como iteraciones.
public class NewMain {
public static void main(String[] args) {
if (esPrimo(Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero")))) {
JOptionPane.showMessageDialog(null, "es primo");
}
}
private static boolean esPrimo(int numero) {
boolean primo = true;
if (Math.abs(numero) != 2) {
if (numero % 2 == 0) {
primo = false;
} else {
for (int i = 3; i * i <= numero; i += 2) {
if (numero % i == 0) {
primo = false;
break;
}
}
}
}
return primo;
}
}
y como tendría que hacer para que me diga que no es primo?
Ese método devuelve true si es primo, y false si no lo es.
Ah, porque puse el numero 6 que no es primo, y no me devolvió nada
if (esPrimo(Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero")))) {
JOptionPane.showMessageDialog(null, "es primo");
}else{
JOptionPane.showMessageDialog(null, "no es primo");
}
}
Ah, ok ahora si sale, pero te pregunto, se puede hacer solamente con while?
Supongo que podría hacerse. Ya tienes en ese método la manera de determinar si un número es primo.
De todos modos, es mejor tener ese tipo de soluciones en métodos, porque así pueden utilizarse donde convenga.
Si probarlo y modificando directamente sobre tu mismo codigo, diria que con un while se podria hacer de una forma similar a esta:
boolean esPrimo = false;
while (!esPrimo && contador<(numero/2)) {
if (numero % contador++ == 0)
esPrimo = true;
}
if (esPrimo) {
JOptionPane.showMessageDialog(null,"es primo");
}
Un saludo
Hola, resulta que me piden que haga una aplicacion, en donde el usuario ingresa un numero y luego tiene que salir un cuadro diciendo si el numero ingresado es un numero primo o no.
Estoy aprendiendo a usar if, while, switch, do while.
Aquí les dejo el código que hice:
int numero;
int contador=2;
numero =Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero"));
while (numero % contador != 0 && contador<numero)
{contador++;
JOptionPane.showMessageDialog(null,"es primo");
}
}
}
El problema que tiene mi codigo es que al ingresar un numero primo, me aparece un cuadro diciendo que es primo repetidas veces, cuando solo quiero que me aparezca el cuadro solo una sola vez.
Por ejemplo, si ingreso el numero 7 (primo), me sale el cartel diciendo que es primo 5 veces.
La verdad es que no sé como seguir.
Alguna ayuda?
Saludos