分解质因数

每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。如30=2×3×5 。分解质因数只针对合数。

//分解质因数
function factor(n){
    const ans=[];
    const temp=(Math.sqrt(n)>>0)+1;
    let now=n;
    for(let i=2;i<temp;i++){
        if(now%i===0){
            ans.push(i)
            now=now/i;
            while (now%i===0){
                ans.push(i);
                now=now/i;
            }
        }
    }
    if(now!==1){
        ans.push(now);
    }
    return ans;
}

demo

console.log(factor(100))

[ 2, 2, 5, 5 ]
原文地址:https://www.cnblogs.com/caoke/p/10972816.html