Java - numeros primos

   
Vista:
Imágen de perfil de Fernando

numeros primos

Publicado por Fernando azarias08@hotmail.com (22 intervenciones) el 11/06/2014 18:14:19
Hola, resulta que estoy estudiando java, me dieron un ejercicio, donde me piden que ingrese un numero y que la aplicacion me diga si es primo o no.

Esto es el codigo que tengo hasta ahora:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args) {
        // TODO code application logic here
        int numero;
        int contador=2;
        numero =Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero"));
 
        while (numero % contador != 0 && contador<numero)
         {   contador++;
             JOptionPane.showMessageDialog(null,"es primo");
         }
 
 
    }
 
}

Mi codigo tiene un problema (o varios). Por ejemplo, si ingreso el numero 5 (que es primo), el sistema me devuelve un cuadro diciendo que es primo pero esto me lo repite 4 veces, y yo solo quiero que solamente me salga una vez.

Si ingreso un numero que no es primo por ejemplo, el 6, no me aparece nada.

Que me está faltando?

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Carlos

numeros primos

Publicado por Carlos (7 intervenciones) el 12/06/2014 02:48:56
Esta es la solucion, un numero primo solo es dividido por el 1 y el mismo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args)
{ // TODO code application logic here 
int numero,x;
int contador=0;
x=1;
numero =Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero"));
while (x<=numero)
{
if(numero % x==0) contador++;
x++;
 
 }
if(contador==2)
JOptionPane.showMessageDialog(null,"es primo");
else
JOptionPane.showMessageDialog(null," no es primo");
 }
 }

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de fernando143

numeros primos

Publicado por fernando143 (22 intervenciones) el 12/06/2014 03:43:43
Hola, gracias por el código, pero me podrías decir como es el funcionamiento? es decir, el proceso lógico que usaste.

x=1; ¿Es el divisor?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carlos

numeros primos

Publicado por Carlos (7 intervenciones) el 13/06/2014 21:01:15
Por concepto un numero primo es divisible por el 1 y el mismo, en el programa x genera sus posibles divisores, en el if verifico si es su divisor, es su divisor si el residuo da 0, cuento cuantas veces fu dividido por el valor de x, si esprimo c se incrementa a 2.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de sandro makaviel

numeros primos

Publicado por sandro makaviel (36 intervenciones) el 14/06/2014 03:09:12
Esta bien tu código, pero no es optimo, ya que se estamos hablando de numero grande, extremadamente grande. sigue haciendo las divisiones aun cuando detecta que no es primo. Si en el mismo while le pondrías una condición de verificación de que el contador ya es mayor a 2, termine. Sin hacer el resto de las divisiones.

while (x<=numero && contador<=2)


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de fernando143

numeros primos

Publicado por fernando143 (22 intervenciones) el 14/06/2014 15:08:36
Si, pero por ejemplo, el 15 no es primo, y no es divisible por 2, por lo que si el contador solo hace la division por 1 y por 2, el programa me va a dar que es primo, pero como el 15 es divisible por 3 entonces no es primo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carlos

numeros primos

Publicado por Carlos (7 intervenciones) el 15/06/2014 05:55:36
Pongale un breaak dentro del bucle si deseas que no continue y listo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de fernando143

numeros primos

Publicado por fernando143 (22 intervenciones) el 15/06/2014 15:02:21
Ah, ok, duda resuelta entonces.
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de sandro makaviel

numeros primos

Publicado por sandro makaviel (36 intervenciones) el 15/06/2014 19:11:38
la variable contador se suma únicamente cuando el residuo es cero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar