Guest User

Untitled

a guest
Apr 23rd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.stream.Collectors;
  5.  
  6. public class PrimeConsec {
  7.  
  8. public static int consecKprimes (int k, long[] arr) {
  9. int counter = 0;
  10.  
  11. for (int i = 1; i < arr.length; i++) {
  12. long larger = Math.max(arr[i], arr[i - 1]);
  13. long smaller = Math.min(arr[i], arr[i - 1]);
  14.  
  15. List<Long> kPrimes = generateKPrimes(k, smaller, larger);
  16.  
  17. if (kPrimes.contains(smaller) && kPrimes.contains(larger)) counter++;
  18. }
  19.  
  20. return counter;
  21. }
  22.  
  23. public static List<Long> generateKPrimes (int k, long start, long end) {
  24. List<Long> result = new ArrayList<>();
  25.  
  26. for (long i = start == 0 ? 2 : start; i <= end; i++) {
  27. int numOfFactors = 0;
  28. long cur = i;
  29.  
  30. for (int j = 2; j <= cur / j; j++) {
  31. while (cur % j == 0) {
  32. numOfFactors++;
  33. cur /= j;
  34. }
  35. }
  36. if (cur > 1) numOfFactors++;
  37.  
  38. if (numOfFactors == k) result.add(i);
  39. }
  40.  
  41. return result;
  42. }
  43. }
Add Comment
Please, Sign In to add comment