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
最初の3行が正確であるが、6^2はちょうど私が6^2は表示されませ作るにはどうすればよい2と3の繰り返し、同様です余分な25のような他の同様の問題を解決する1000を入力したときに?
P.S.私は、このコードが必要以上に多くの作業を必要としていることを認識していますが、他のメソッドと完全に置き換えるよりも、むしろ機能を多かれ少なかろうとしています。
あなたのコードは、その繰り返しのほか、他のバグを持っています。 10要因を試してみてください。それは2と5の代わりに2を与える –