Snippets

Burdzi0 Sito Eratostenesa

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;
	}
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.