Java - Numero Primo Dudas

 
Vista:
sin imagen de perfil

Numero Primo Dudas

Publicado por omar (3 intervenciones) el 03/09/2017 02:11:30
HOLA!!!!!
Estoy tratando de hacer un programa que determine que números dentro de un rango establecido por el usuario son números primos (divisibles entre si mismo y 1), todos son impares a excepción del 2. Pero hay otros números por ejemplo el 9 que es divisible entre 9 y 1 y es impar, pero también es divisible entre 3.

Mi duda es como hacer que el programa solo muestre los números que se numero primo tomando en cuenta el caso del numero 9, como ejemplo si fuera de 1 al 10 que muestre 1 3 5 7.

Y le agradecería que me explicaran el problema en si, en vez de ir directamente al desarrollo de cogido. Lo que más bien quiero es entender el porque este procedimiento si se le puede aplicar al 7 pero al 9 no.

Gracias por su atención y tiempo.
Captura-de-pantalla-199
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
sin imagen de perfil
Val: 144
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Numero Primo Dudas

Publicado por Thanatos (97 intervenciones) el 03/09/2017 10:42:18
"Lo que más bien quiero es entender el porque este procedimiento si se le puede aplicar al 7 pero al 9 no."

Lo que sucede es que no estás verificando si los números que imprimes son primos, sólo estás mostrando todos los números impares que se encuentran desde el 3 hasta el 10.


La primera condición:

1
if (i / 1 == 1 || i / i == 1)

Siempre se evalúa como verdadera, debido a que 'i / i' siempre va a ser igual a 1. El único caso en el que no se llegaría a ejecutar el código que está dentro de esa condición, ocurriría si 'i' llega a valer 0, porque se generaría un error por la división 0 / 0.


La segunda condición, que se debe cumplir para que el valor de la variable 'i' se imprima en la pantalla:

1
if (i % 2 != 0)

Hace que se impriman los números impares. Si 'top' tuviera el valor 30, en lugar de 10, la salida mostraría todos los números impares desde 3 hasta 30. Entre ellos estarían los números: 9, 15, 21, 25 y 27 que no son primos.


Necesitas otro bucle que genere los divisores, para comprobar la divisibilidad de los números que genera el bucle 'for' que tienes en tu código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar