Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Hallando primos con While

Hola a todos, llevo unos días devanándome lo sesos con algo tan basico como hallar números primos usando un bucle While. El caso es que tengo hallar 25 números y no doy con la que sería la forma más optimizada. He visto que calcular la raíz cuadrada de un número y probar a dividirlo por los primos menores a ese resultado nos determinaría si es primo o no. Como siempre la teoría es sencilla, pero llevarlo al código no tanto.

He probado algo así:

int i = 2;
int contador = 0;

while (contador<25){

if(i%2 == 0){ //Aquí desecharía los múltiplos de dos, pero 2 es primo. Primer fallo.
i++;
}

for(int j = 3; j<=i; j+=2){ //Aquí incluyo un for para ir probando divisores.
if(i%j == 0){

}
}

System.out.println(i); //

i++;
contador++;
}
}

}


Esto imprime lo siguiente:

1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51

Obtengo bastantes números primos, pero no llego a obtener lo que busco.
A ver si alguien pudiese echarme una mano.
Muchas gracias.

junio 13, 2016 | Unregistered CommenterRafa