思路
例如: n=20,首先从2开始除,n%2 === 0,将n=n/2,再将n从2开始除,以此类推
function commit(nums) {
if (nums === 0 || nums === 1) {
return;
}
if (nums === 2 || nums === 3 || nums === 5 || nums === 7) {
return [[nums, 1]];
}
let map = new Map();
let res = [];
for (let i = 2; i <= nums; i++) {
if (nums % i === 0) {
nums = nums / i;
if (map.has(i)) {
map.set(i, map.get(i) + 1);
} else {
map.set(i, 1);
}
i = 1;
}
}
for (let [key, val] of map) {
res.push([key, val]);
}
return res;
}
console.log(commit(96));

该代码片段展示了如何通过循环和Map数据结构来找到并记录一个整数的所有因数及其出现次数。当输入的数字为20时,程序会将20分解为它的因数2,并记录2出现了3次。最终返回一个Map,显示每个因数及其对应的次数。

805

被折叠的 条评论
为什么被折叠?



