Foro de elhacker.net

Programación => 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:

Código:
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

Código:
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
Código:
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
  1. int primos_conseguidos=0;
  2. int posible_primo = 1;
  3. while(primos_conseguidos < 15){
  4. posible_primo++;
  5. if(posible_primo%2==0 || posible_primo%3 == 0){
  6.  // no es primo
  7.  continue;
  8. }
  9. for(int i=5; i*i < posible_primo; i+=6){
  10.  if (n % i == 0 || n % (i + 2) == 0){
  11. // no es primo
  12.  continue;
  13. }
  14.  
  15. //si es primo
  16. primos_conseguidos ++;
  17.  
  18. imprimir (posible_primo);
  19.  
  20. }

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