如何检查一个数是否为素数?如果不是,如何增加数字直到函数 returns 下一个素数?

How to check if a number is prime? and if is not, how to increment the number until the function returns the next prime number?

事情是我相信我已经构建了实现它的代码,问题是我试图用它作为 jschallenger.com 挑战的答案,但页面不接受我的代码作为有效答案。

任何人都可以向我解释为什么该网站不接受我的代码以及我该如何解决它?我的代码对吧?

这是我的代码:

function checkPrime(number) {
  for (var i = 2; i < number; i++) {
    if (number % i === 0) {
      return false;
    }
  }
  return true;
}

function myFunction(number) {
  if (checkPrime(number)) {
    return number;
  } else {
    while (checkPrime(number) === false) {
      number++;
    }
  }
  return number;
}

console.log(myFunction(38)); //the return should be 41
console.log(myFunction(7)); //the return should be 7
console.log(myFunction(115)); //the return should be 127
console.log(myFunction(2000)); //the return should be 2003

看起来该网站只允许您拥有该功能,而没有其他功能。具体在这种情况下:没有单独的功能。因此,如果我将您的 checkPrime 函数放在 myFunction 中,它将成功通过。

function myFunction(number) {
  function checkPrime(number) {
    for (var i = 2; i < number; i++) {
      if (number % i === 0) {
        return false;
      }
    }
    return true;
  }
  if (checkPrime(number)) {
    return number;
  } else {
    while (checkPrime(number) === false) {
      number++;
    }
  }
  return number;
}