Generación de números primos
El siguiente extracto de código genera los números primos que existan hasta un número lÃmite que se marca como parámetro. Se ha codificado como un método para que pueda ser reutilizado, por ejemplo añadiéndolo a la librerÃa de operaciones matemáticas que se presentaba en la entrada Como saber si un número es par o impar
?Ver código JAVA
public static int[] generarNumerosPrimos(int max) { if (max < 2) { return new int[0]; } else { boolean[] booleanArrayTmp = new boolean[max + 1]; for (int i = 2; i < booleanArrayTmp.length; i++) { booleanArrayTmp[i] = false; } int limit = (int)Math.sqrt(booleanArrayTmp.length); for (int i = 2; i <= limit; i++) { if (!booleanArrayTmp[i]) { for (int multiple = 2 * i; multiple < booleanArrayTmp.length; multiple += i) { booleanArrayTmp[multiple] = true; } } } int tmpInt = 0; for (int i = 2; i < booleanArrayTmp.length; i++) { if (!booleanArrayTmp[i]) { tmpInt++; } } int[] resultado = new int[tmpInt]; for (int i = 2, j = 0; i < booleanArrayTmp.length; i++) { if (!booleanArrayTmp[i]) { resultado[j++] = i; } } return resultado; } } |