Created by
Burdzi0
last modified
| package sito;
public class Eratosthenes {
private int sizeOfSieve = 0;
private int[] sieveResult;
public Eratosthenes(int size) {
intoIntSieve(sieve(size));
}
public boolean[] sieve(int n) {
boolean[] isPrime = new boolean[n+1];
for (int i = 2; i < isPrime.length; i++) {
isPrime[i] = true;
}
for (int factor = 2; factor * factor <= n; factor++) {
if (isPrime[factor]) {
for (int i = factor; factor * i <= n; i++) {
isPrime[factor * i] = false;
}
}
}
return isPrime;
}
public void intoIntSieve(boolean[] isPrime) {
for (int i = 2; i < isPrime.length; i++) {
if (isPrime[i]) ++sizeOfSieve;
}
sieveResult = new int[sizeOfSieve];
int indicator = 0;
for (int i = 2; i < isPrime.length; i++) {
if (isPrime[i]) {
sieveResult[indicator] = i;
++indicator;
}
}
}
/**
* @return the sieveResult
*/
public int[] getSieveResult() {
return sieveResult;
}
}
|