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),
);
我需要编写一个质因数分解函数,该函数 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),
);