Foros del Web » Programación para mayores de 30 ;) » Java »

Programa números primos

Estas en el tema de Programa números primos en el foro de Java en Foros del Web. Buenas tardes, estuve revisando post en que se hablaron sobre números primos pero no se si se ajusta a lo que necesito. Además estoy en ...
  #1 (permalink)  
Antiguo 05/11/2015, 16:27
Avatar de guni326  
Fecha de Ingreso: noviembre-2015
Ubicación: Nordeste Argentina
Mensajes: 3
Antigüedad: 8 años, 5 meses
Puntos: 0
Programa números primos

Buenas tardes, estuve revisando post en que se 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 y no contamos con muchos conocimientos.

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:


Código:
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!
  #2 (permalink)  
Antiguo 06/11/2015, 07:03
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Programa números primos

Buenas,

El calculo de numeros primos es practicamente el ejercicio mas basico despues del 'Hola Mundo' y se precisan conocimientos minimos. Eso si, no esperes que te lo de el profesor ya todo mascado. El objetivod de la Universidad es sobre todo aprender a resolver los problemas por uno mismo.
De hecho, cuando llegues al numero laboral, comprobaras que esa es la norma. Lo extrano es que te manden hacer algo que ya sabes.

Dicho esto, el error que tienes es que muestras la ventana en cada calculo/ciclo del bucle. Lo que debes hacer es usar un valor booleano inicializado a falso y posteriormente, dentro del bucle, si se da la condicion de que encuentres un divisor, ponerla a true y salir del bucle. Despues deberas tener un if que muestre una ventana con un mensaje u otro dependiendo del valor de la variable booleana.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 08/11/2015, 08:58
Avatar de guni326  
Fecha de Ingreso: noviembre-2015
Ubicación: Nordeste Argentina
Mensajes: 3
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Programa números primos

GREETINGS PROFESSOR FALKEN.

Muchas gracias por la respuesta, orientadora y precisa. Voy a corregir el código, cualquier cosa consulto.

Saludos cordiales

Etiquetas: primos, programa, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.