Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: noaptebuna en 21 Septiembre 2015, 21:55 PM

Título: Duda en numeros primos
Publicado por: noaptebuna en 21 Septiembre 2015, 21:55 PM
Buenas.
Estoy realizando un programita en el que tiene que decirme los 15 primeros numeros primos y no consigo hacerlo.
Llevo 4 días intentándolo.
Éste es uno de los muchos planteamientos que traté de darle:

package segundoejercicio;

public class SegundoEjercicio {

    public static void main(String[] args) {
        for(int x=1;x<15;x++){
            int resultado=237%x;
            if(resultado!=0){
                System.out.println(x);
            }
        }
    }
}


Sé que se puede hacer con boleanos pero preferiría no usarlo simplemente porque ya vi un código con boleanos y ni lo entendí, mientras que con un for un if etc lo entendí del todo cuando vi el código hace mucho.
Muchas gracias. :) :) :) :) :)
Título: Re: Duda en numeros primos
Publicado por: engel lex en 21 Septiembre 2015, 22:23 PM
explica ese código, porque

int resultado=237%x;
no tiene sentido si estás sacando los primeros 15 primos
Título: Re: Duda en numeros primos
Publicado por: noaptebuna en 21 Septiembre 2015, 22:25 PM
package segundoejercicio;

public class SegundoEjercicio {

    public static void main(String[] args) {
        for(int x=1;x<15;x++){
            int resultado=x%x;
            if(resultado!=0){
                System.out.println(x);
            }
        }
    }
}


Perdón lo puse sin querer xD
Éste es el original
Título: Re: Duda en numeros primos
Publicado por: engel lex en 22 Septiembre 2015, 00:04 AM
x%x siempre será 0 XD es lo mismo que decir x/x siempre será 1 (exceptuando x=0)


tienes que hacer 2 ciclos... uno de recorrido y otro de busqueda...

yo recomiendo hacer algo así

Código (java) [Seleccionar]
int primos_conseguidos=0;
int posible_primo = 1;
while(primos_conseguidos < 15){
posible_primo++;
if(posible_primo%2==0 || posible_primo%3 == 0){
  // no es primo
  continue;
}
for(int i=5; i*i < posible_primo; i+=6){
  if (n % i == 0 || n % (i + 2) == 0){
// no es primo
  continue;
}

//si es primo
primos_conseguidos ++;

imprimir (posible_primo);

}


el codigo está hecho como c, pero me imagino que no necesita muchas adaptaciones para que funcione en java
Título: Re: Duda en numeros primos
Publicado por: noaptebuna en 22 Septiembre 2015, 09:03 AM
Siiii Muchas graciasss!!! ;D