Sha256: 1f57ff356392f2433817278a47c0fbd3bf0ccf3875ef2844afd23ffa564aee77

Contents?: true

Size: 1.01 KB

Versions: 396

Compression:

Stored size: 1.01 KB

Contents

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Sieve {

    private int maximalPrime;
    private List<Integer> primes;

    public Sieve(int maximalPrime) {
        this.maximalPrime = maximalPrime;
        this.primes = calculatePrimes();
    }

    public List<Integer> getPrimes() {
        return primes;
    }

    private List<Integer> calculatePrimes() {
        List<Integer> primes = new ArrayList<>();
        LinkedList<Integer> candidates = IntStream.range(2, maximalPrime + 1)
                .boxed()
                .collect(Collectors.toCollection(LinkedList::new));

        while (candidates.size() > 0) {
            Integer prime = candidates.remove();
            primes.add(prime);
            candidates = candidates.stream()
                    .filter(x -> x % prime != 0)
                    .collect(Collectors.toCollection(LinkedList::new));
        }

        return primes;
    }
}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.179 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.178 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.177 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.176 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.175 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.174 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.173 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.172 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.171 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.170 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.169 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.167 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.166 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.165 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.164 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.163 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.162 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.161 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java
trackler-2.2.1.160 tracks/java/exercises/sieve/.meta/src/reference/java/Sieve.java