将一个整数拆分为多个质数的乘积

194 阅读1分钟
function toPrimeNumbers(n) {
  for (let i = 2; i < n; i++) {
    if (n % i === 0) {
      return [i].concat(toPrimeNumbers(n / i));
    } else if (n % i !== 0 && i === n - 1) {
      return [n];
    }
  }
}
console.log(toPrimeNumbers(100)); // [ 2, 2, 5, 5 ]
console.log(toPrimeNumbers(17)); // [ 17 ]
console.log(toPrimeNumbers(46)); // [ 2, 23 ]