我试图找到一个数字的主要因素,在 javascript 中使用 for 循环在下面记录为“整数”。我似乎无法让它工作,我不确定这是我的 JavaScript 还是我的计算逻辑。
//integer is the value for which we are finding prime factors
var integer = 13195;
var primeArray = [];
//find divisors starting with 2
for (i = 2; i < integer/2; i++) {
if (integer % i == 0) {
//check if divisor is prime
for (var j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = false;
} else {
isPrime = true;
}
}
//if divisor is prime
if (isPrime == true) {
//divide integer by prime factor & factor store in array primeArray
integer /= i
primeArray.push(i);
}
}
}
for (var k = 0; k < primeArray.length; k++) {
console.log(primeArray[k]);
}
原文由 John the User 发布,翻译遵循 CC BY-SA 4.0 许可协议
上面的答案效率低下,复杂度为 O(N^2)。这是 O(N) 复杂度的更好答案。
您可以根据需要过滤重复项!