javascript怎么求出一个数的所有素数因子?

碰到一个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));

运行结果为:
clipboard.png

虽然运算结果看着是对的,但是觉着算法设计的太low,性能低,求大神帮忙分析下,写一个更好的算法,多谢了。

阅读 5.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题