Foro sobre Java SE > Número primos
Hola,
Prueba a meter la instrucción "break;" detras de cada showmessageDialog. Asi solo te saldrá una vez el mensaje
saludos
Muchas gracias oldskultxo, lo voy a probar.
Saludos
Comenta, si te funciona o no,
En principio esa instruccion rompe el bucle, y si los calculos son correctos dirá correctamente si es un numero primo o no.
En caso de que no sea correcto el resultado habría que mirar el algoritmo. Pero vamos en principio con eso el mensaje saldrá solo una vez
Saludos
oldskultxo
Ahora solo sale el mensaje una vez aunque que el resultado es erróneo. Por ejemplo dice que 3 no es primo. Debe estar mal mi algoritmo. En estos casos, si o si tengo que usar una variable boolean o no es necesario?
int numeroIngresado;
int divisores;
numeroIngresado = Integer.parseInt(JOptionPane.showInputDialog("Ingrese un número"));
for (divisores=2; (divisores<=numeroIngresado); divisores++)
{if(numeroIngresado%divisores==0)
JOptionPane.showMessageDialog(null,numeroIngresado+ " Es primo");
else
JOptionPane.showMessageDialog(null,numeroIngresado+ " No es primo");
break;
}
}
}
sería lo suyo usar un boolean;
esprimo =false;
for(-......)
If (//esprimo)
esprimo=true;
...
}//fin de for
//despues del for
if(esPrimo) {
//mostrar mensaje
}else{
//mostrar el otro;
Saludos
Muchas gracias
Saludos
Pista.. puedes acotar el numero d divisores si estos son solo primos.. saludos
Muchas gracias ChavitoDel8, ya tengo casi terminado el código. Gracias por la ayuda!!
Saludos
Buenas tardes, estuve revisando los post que ya hablaron sobre números primos pero no se si se ajusta a lo que necesito. Además estoy en el inicio de la materia Fundamentos de programación.
Tenemos que hacer un programa en java que ingresando un número nos diga si es primo o no.
La única librería que dimos es import javax.swing.JOptionPane para capturar los datos y devolver el resultado.
No dimos mucho por lo tanto los ejemplos que hay en la web estan fuera de mis conocimientos.
Según el profesor se puede hacer con while, o con for, o con for con if y un break.
Los pasos a seguir que nos dan son:
Comienzo
- Leer un valor
- Tener un numero que usaré como divisor
- Mientras que el resto de dividir el valor leído por el número sea distinto de 0 y el número sea menor o igual que la mitad del valor leído, vamos a incrementar el número
(cuando salgo del ciclo anterior puede ser porque encuentra un resto fue 0 o porque el número superó la mitad del valor leído)
- Si el número es mayor que la mitad del valor leído, entonces el número es primo
Fin
Mi codigo escrito hasta ahora es:
package numerosprimosunidad4;
import javax.swing.JOptionPane;
/**
*
* @author guni326
*/
public class NumerosPrimosUnidad4 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int numeroIngresado;
int divisores;
numeroIngresado = Integer.parseInt(JOptionPane.showInputDialog("Ingrese un número"));
for (divisores=2; (divisores<=numeroIngresado); divisores++)
{if(numeroIngresado%divisores==0)
JOptionPane.showMessageDialog(null,numeroIngresado+ " Es primo");
else
JOptionPane.showMessageDialog(null,numeroIngresado+ " No es primo");
}
}
}
El tema es que me devuelve varias ventanas. Algunas diciendo que es primo y otras que no lo es.
Cualquier sugerencia les agradeceré!
Saludos!