lots of exercises in java... from https://github.com/exercism/java

example.java 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import java.util.ArrayList;
  2. import java.util.LinkedList;
  3. import java.util.List;
  4. import java.util.stream.Collectors;
  5. import java.util.stream.IntStream;
  6. public class Sieve {
  7. private int maximalPrime;
  8. private List<Integer> primes;
  9. public Sieve(int maximalPrime) {
  10. this.maximalPrime = maximalPrime;
  11. this.primes = calculatePrimes();
  12. }
  13. public List<Integer> getPrimes() {
  14. return primes;
  15. }
  16. private List<Integer> calculatePrimes() {
  17. List<Integer> primes = new ArrayList<>();
  18. LinkedList<Integer> candidates = IntStream.range(2, maximalPrime + 1)
  19. .boxed()
  20. .collect(Collectors.toCollection(LinkedList::new));
  21. while (candidates.size() > 0) {
  22. Integer prime = candidates.remove();
  23. primes.add(prime);
  24. candidates = candidates.stream()
  25. .filter(x -> x % prime != 0)
  26. .collect(Collectors.toCollection(LinkedList::new));
  27. }
  28. return primes;
  29. }
  30. }