JavaScript实现正整数质因数分解,输出数组形式的结果

14 min read

以下是一个使用JavaScript实现分解质因数的函数:

function primeFactors(n){
  var factors = [];
  var divisor = 2;

  while(n>2){
    if(n % divisor == 0){
       factors.push(divisor);
       n= n/ divisor;
    }
    else{
      divisor++;
    }     
  }
  return factors;
}

// Example usage:
console.log(primeFactors(12)); // [2,2,3]
console.log(primeFactors(56)); // [2,2,2,7]
console.log(primeFactors(99)); // [3,3,11]

在上面的函数中,我们首先初始化一个数组factors来存储质因数。然后我们用变量divisor初始化为2开始,不断将它作为因子来除选择的正整数n,直到n不能再被任何因子整除。如果能被整除,就把这个因子记录下来,然后将n值改为原来的正整数除以这个因子后得到的值。如果不能被整除,那么就将divisor的值加1,然后继续检查。

最后,函数将返回一个包含所有质因数的数组factors。你可以调用函数,并传入一个你想要分解的正整数,比如primeFactors(12),该函数将会返回数组[2,2,3],表示12是由2和3组成的质因数积。