如何找到在JavaScript中使用循环的主要因素? [英] How to find prime factors using a for loop in Javascript?
问题描述
我是新来的JavaScript,并试图找到一个数字的主要因素,下面记录为'整数'在JavaScript中使用循环。我似乎无法得到它的工作,我不知道这是我的JavaScript还是我的计算逻辑。我试图添加评论,以便您可以看到我的程序当时在做什么。纠正我,如果我错了。
任何帮助将不胜感激。这里是我的代码:
// integer是我们正在查找的值prime elementsvar integer = 13195; var primeArray = []; //找到以2for开始的除数(i = 2; i
以下是一个可行的解决方案:
你们走的很正确。有两个小错误。对 integer - 1
的评估似乎是不正确的。我相信在你的外部中为
循环更合适的评估是< = integer
。这是因为当你将你的整数除以 integer / = i
时,结果是最后的整数求值是 29
。在这种情况下,最终的主要分支也是 29
,因此需要被评估为 <=
到<至于为什么最后的日志统计不起作用,有一个简单的打字错误
。
primeArray [k]
。 I'm new to javascript and was trying to find the prime factors of a number, recorded below as 'integer' using a for loop in javascript. I can't seem to get it working and I'm not sure whether it's my javascript or my calculation logic. I tried to add comments so that you can see what I think my program is doing at that time. Correct me if I'm wrong.
Any help will be appreciated. Here's my code:
//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]);
}
Here's a working solution:
//integer is the value for which we are finding prime factors
var integer = 13195,
primeArray = [],
isPrime;
//find divisors starting with 2
for(i = 2; i <= integer; 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]);
}
You were very much on the right track. There were a two minor mistakes. The evaluation of integer - 1
seemd to be incorrect. I believe the more appropriate evaluation is <= integer
in your outer for
loop. This is because when you divide your integer below integer /= i
, this results in the final integer evaluation to be 29
. The final prime divsor in this case is also 29
and as such will need to be evaluated as <=
as oppose to < integer - 1
.
As for why the final log statment isn't working, there was a simple typo of primeArray[i]
as oppose to primeArray[k]
.
这篇关于如何找到在JavaScript中使用循环的主要因素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!