如果给定正整数的素数小于给定素数,则某些测试用例失败

时间:2018-06-24 12:59:30

标签: javascript prime-factoring

编写一个函数,以正整数和素数作为输入,如果给定正整数的素数小于给定素数,则返回true

示例:

hasLessPrimeFactor(20,5)应该返回true,因为一个数的素数:20 = 2 X 2 X 5

我已针对上述问题实现了以下JS代码。但是它无法通过某些测试用例。 合适的人可以帮助我。

function checkPrime (i){
  let isPrime = true;
      for (let j = 2; j <= i / 2; j++) {
        if (i % j == 0) {
          isPrime = false;
        }else{
          isPrime = true;
        }
      }
      return isPrime;
}
function hasLessPrimeFactor(value, primenum) {
  let returnValue = false,
      number = value,
      primeArray = [1];

  for (let i = 2; i <= number/2; i++) {
    if (number % i == 0) {
      let isPrime = checkPrime(i);
      if (isPrime){ 
        number /= i;
        primeArray.push(i);
      }
    }
  }
  if(checkPrime(value)){
    primeArray.push(number);
  }
  if (primeArray[primeArray.length-1] >= primenum){
    returnValue = true;
  }
  return returnValue;
}

0 个答案:

没有答案