Javascript 中的质因数分解

Prime Factorisation in Javascript

我需要编写一个质因数分解函数,该函数 returns 一个对象,其键是质因数,值是相应质因数的指数。例如

console.log(primeFactorisation(4)) // { 2: 2 } console.log(primeFactorisation(6)) // { 2: 1, 3: 1 }

到目前为止,我的代码在下面,但我卡住了。非常感谢任何帮助。

const primeFactorisation = (num) => {
    let result = {};
    for (let i = 2; i < num; i++) {
      if (num % i === 0) {
        result[i] = i;
        num /= i;
      }
    }
    return result
  }

找到一个数字后,在结果对象上递增它而不是将 i 分配给结果对象。

您还需要一个嵌套循环来不断测试数字,直到它不再均分,并且您还需要 i <= num,而不是 i < num,以便捕获最后一个因素:

const primeFactorisation = (num) => {
  let result = {};
  for (let i = 2; i <= num; i++) {
    while (num % i === 0) {
      result[i] = (result[i] || 0) + 1;
      num /= i;
    }
  }
  return result
}
console.log(
  primeFactorisation(6),
  primeFactorisation(4),
);