public class PrimeGenerator implements NumberGenerator { public int[] getValues(int maxNumber) { int[] array; int numPrimes = 0; array = new int[maxNumber + 1]; // initialize array to 2...maxNumber for (int i=2; i<=maxNumber; i++) { array[i] = i; } // compute the primes by removing multiple of primes for (int i=2; i<=(int)Math.sqrt(maxNumber); i++) { for (int j=2*i; j <= maxNumber; j+=i) { array[j] = 0; } } // count how many found for (int i=2; i<=maxNumber; i++) { if (array[i] != 0) { numPrimes++; } } int[] primes = null; primes = new int[numPrimes]; for (int i=2,j=0; i<=maxNumber; i++) { if (array[i] != 0) { primes[j++] = array[i]; } } return primes; } public static void main(String[] args) { PrimeGenerator primeGenerator = new PrimeGenerator(); int[] primes = primeGenerator.getValues(16); for (int i=0; i