Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. package client;
  2.  
  3. import server.Task;
  4.  
  5. import java.io.Serializable;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.stream.IntStream;
  11.  
  12. public class Prime implements Task<List<Integer>>, Serializable {
  13.  
  14. private int amount;
  15.  
  16. private Map<Integer, Boolean> isPrimeMap = new HashMap<>();
  17.  
  18. public Prime(int amount) {
  19. this.amount = amount;
  20. }
  21.  
  22. public boolean isPrime(int number) {
  23. return number > 2
  24. && IntStream.rangeClosed(2, (int) Math.sqrt(number))
  25. .noneMatch(n -> (number % n == 0));
  26. }
  27.  
  28. public List<Integer> execute() {
  29.  
  30. List<Integer> results = new ArrayList<>(amount);
  31.  
  32. int primesLeft = amount, counter = 1;
  33.  
  34. while (primesLeft > 0) {
  35.  
  36. if (isPrimeMap.containsKey(counter)) {
  37. results.add(counter);
  38. primesLeft--;
  39. }
  40.  
  41. if (isPrime(counter)) {
  42. results.add(counter);
  43. isPrimeMap.put(counter, Boolean.TRUE);
  44. primesLeft--;
  45. }
  46.  
  47. counter++;
  48. }
  49.  
  50. return results;
  51. }
  52.  
  53. public void setAmount(int amount) {
  54. this.amount = amount;
  55. }
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement