I'm attempting a codewars.com challenge and I'm having some issues with making my code more efficient. The instructions for the challenge are to find all the primes in a range, then I have to find two prime numbers with a specified gap between them.
I've written an algorithm that works but takes too long to complete all of the test cases. You can see the code below:
function gap(g, m, n) {
// your code
var stopNumber;
var checkIfInteger;
var primeNumbersInRange = [];
var arrayIndex = 0;
var gap;
//iterate through all of the numbers in the range and find if they're prime
for( var numberToCheck  = m; numberToCheck <= n; numberToCheck++){
      var checkedTwoAndThreePass = true;
      checkIfInteger = numberToCheck / 2;
      if(Number.isInteger(checkIfInteger)){
        checkedTwoAndThreePass = false;
      }
      checkIfInteger = numberToCheck / 3;
      if(Number.isInteger(checkIfInteger)){
        checkedTwoAndThreePass = false;
      }
      if(checkedTwoAndThreePass){
        var k = 1;
        var primeNumberCheck = true;
        stopNumber = Math.sqrt(numberToCheck);
        while( ((6 * k) - 1) <= stopNumber & primeNumberCheck === true ){
          checkIfInteger = numberToCheck / ((6 * k) - 1);
          if(Number.isInteger(checkIfInteger)){
            primeNumberCheck = false;
          }      
          else{
            checkIfInteger = numberToCheck / ((6 * k) + 1);
            if(Number.isInteger(checkIfInteger)){
              primeNumberCheck = false;
            }
          }
          k++;
        }
        if(primeNumberCheck === true){
          primeNumbersInRange[arrayIndex] = numberToCheck;
          arrayIndex++;
        }
      }  
}
for(var i = 0; i < primeNumbersInRange.length; i++){
  gap = primeNumbersInRange[(i+1)] - primeNumbersInRange[i];
  if(gap === g){
    var primeNumbersThatMeetGap = [primeNumbersInRange[i], primeNumbersInRange[(i+1)]];
    return primeNumbersThatMeetGap;
  }
} 
var primeNumbersThatMeetGap = null;
return primeNumbersThatMeetGap;
}