gpt4 book ai didi

javascript - Factors 函数获取最小公倍数或素数

转载 作者:行者123 更新时间:2023-12-01 00:40:36 30 4
gpt4 key购买 nike

在factors函数中,我们寻求获得参数传递的数字的最小分母或给定数字的精确素数,如果我们将所有最小分母相乘,结果就是数字本身。 factors(4) = [2,2] / 2x2 = 4
factors(18) = [2,3,3] / 2x3x3 = 18
factors(3)=[3]

对于这个问题,我必须使用递归方法。

最佳答案

您可以首先创建一个函数,生成一个范围内的素数。然后,如果该数字可整除,则继续将该数字除以最小素数,并将该素数添加到结果数组中。

function isPrime(num){
if(num === 2) return true;
if(num === 3) return true;
if(num % 2 === 0 || num % 3 === 0) return false;
for(let i = 5; i < Math.sqrt(num) + 1; i += 6){
if(num % i === 0 || num % (i + 2) === 0) return false;
}
return true
}
function createPrimes(range){
let res = [];
for(let i = 2; i < range; i++){
if(isPrime(i)){
res.push(i)
}
}
return res;
}


function factors(num){
if(isPrime(num)) return [num];
let primes = createPrimes(num);
let res = []
while(num !== 1){
for(let p of primes){
if(num % p === 0){
res.push(p);
num /= p;
}
}
}
return res;
}


console.log(factors(18))
console.log(factors(4))
console.log(factors(3))

关于javascript - Factors 函数获取最小公倍数或素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57743363/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com