var userNumber = parseInt(prompt("What number would you like to have factored?"));
var factoring = function(n) {
var m = n;
var o = n;
for(i = 2; i < n/2; i++) {
if (m % i === 0 && o % i === 0) {
var p = 0;
while (n % i === 0) {
n = n/i;
p++;
}
n = m;
o = o/i;
if (p > 1) {
console.log(i + "^" + p);
}
else {
console.log(i);
}
}
else {}
}
};
factoring(userNumber);
当我给上述代码输入一个很大且相对复合的输入时,它会给出错误的答案。 900,例如给出:总理分解给予重复在JS
2^2
3^2
5^2
6^2
的前三行是准确的,但6^2仅有的2和3的重复怎样使6^2不显示,以及解决其他类似的问题,如输入1000时给出的额外25个?
P.S.我意识到这段代码需要做的工作超出必要,但我仍然宁愿让它工作或多或少,而不是完全用其他方法替代它。
你的代码有其他错误,除此之外重复。尝试获得10个因子。它给2,而不是2和5 –