碰到一个javascript算法题,要求是:求出一个数的所有素数因子
我设计的算法:
function primeFactors(n){
var factors = [];
var divisor = 3;
if (n % 2==0) factors.push(2);
while(n>5){
if(n % divisor == 0){
!factors.includes(divisor) && factors.push(divisor);
n= n/ divisor;
}
else{
divisor+=2;
}
}
return factors;
};
console.log(primeFactors(666));
运行结果为:
虽然运算结果看着是对的,但是觉着算法设计的太low,性能低,求大神帮忙分析下,写一个更好的算法,多谢了。