public class CalculaPrimos { // Arreglo que contendra a los primos private long []Pr; // Numero de primos que contendra el arreglo de primos private int nPr; // Constructor public CalculaPrimos(int npr) { if (npr > 2) nPr = npr; else { nPr = 10; System.out.println("Error en el numero indicado de primos a calcular, se ajusta a: " + nPr); } calcula(); } // Regresa el numero de primos calculados public int numeroPrimos() { return nPr; } // Retorna el arreglo de los primos encontrados public long primo(int i) { if (i >= 0 && i < nPr) return Pr[i]; else System.out.println("Error en el primos solicitado: " + i); return 1; } // Calcula los primeros nPr primos por el algoritmos de criba de Eratostenes private void calcula() { int n, i, np; Pr = new long[nPr]; // Guarda los primeros 2 primos Pr[0] = 2; Pr[1] = 3; np = 2; // Empieza la busqueda de primos a partir del numero 4 n = 4; // Ciclo para buscar los primeros NPB primos while (np < nPr) { for (i = 0; i < np; i++) { if((n % Pr[i]) == 0) break; } if(i == np) { Pr[i] = n; np++; } n++; } } // Visualiza los primos encontrados public void visualiza() { System.out.println("Visualiza los primeros " + nPr + " primos"); for (int i = 0; i < nPr; i++) System.out.println(Pr[i]); System.out.println(""); } // Ejemplito de uso ... public static void main(String[] args) { CalculaPrimos c = new CalculaPrimos(10); c.visualiza(); } };