编写一个函数,以正整数和素数作为输入,如果给定正整数的素数小于给定素数,则返回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;
}