分解质因数
每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。如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 ]