Here is my version of java. Hope this helps:
static int function(int n, int a, int b){ return n*n + a*n + b; } static int consequitive_Primes(int a, int b, HashSet<Integer> primes){ int n = 0; int number = 0; while(true){ if(!primes.contains(function(n, a, b))) break; number++; n++; } return number; } static HashSet<Integer> primes (int n){ ArrayList<Integer> primes = new ArrayList<Integer>(); primes.add(3); for(int i=3; i<n;i+=2){ boolean isPrime = true; for(Integer k:primes){ if(i%k==0){ isPrime = false; break; } } if(isPrime) primes.add(i); } return new HashSet<Integer>(primes); } static long q27(){ HashSet<Integer> primes = primes(1000); int max = 0; int max_ab = 0; for(int a = -999; a<1000;a++){ for(int b = -999; b<1000;b++){ int prime_No = consequitive_Primes(a,b,primes); if(max<prime_No){ max = prime_No; max_ab = a*b; } } } return max_ab; }
source share