Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package client;
- import server.Task;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.IntStream;
- public class Prime implements Task<List<Integer>>, Serializable {
- private int amount;
- private Map<Integer, Boolean> isPrimeMap = new HashMap<>();
- public Prime(int amount) {
- this.amount = amount;
- }
- public boolean isPrime(int number) {
- return number > 2
- && IntStream.rangeClosed(2, (int) Math.sqrt(number))
- .noneMatch(n -> (number % n == 0));
- }
- public List<Integer> execute() {
- List<Integer> results = new ArrayList<>(amount);
- int primesLeft = amount, counter = 1;
- while (primesLeft > 0) {
- if (isPrimeMap.containsKey(counter)) {
- results.add(counter);
- primesLeft--;
- }
- if (isPrime(counter)) {
- results.add(counter);
- isPrimeMap.put(counter, Boolean.TRUE);
- primesLeft--;
- }
- counter++;
- }
- return results;
- }
- public void setAmount(int amount) {
- this.amount = amount;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement