Javascript - 因子2数字

时间:2014-10-28 18:10:53

标签: javascript

我有一个我正在开发的程序,但需要一些帮助。我让用户输入最小数量和最大数量。我有一个for循环,它将遍历数字范围并显示在屏幕上。我还需要找到每个数字的因子。我在for循环中有一个while循环,但是我得到一个"分配大小溢出"错误。

这是我到目前为止所做的:

function getFactors(lowNum, highNum){

var result = "Finding all factors of numbers between " 
              + lowNum + " and " + highNum + "<br /><br />"; 

for (var x=lowNum; x <= highNum; x++) {
     result +=  "<b>" + x + ":</b>";                  
    //for loop to loop through the terms


    var factor=2;
    while(factor <= lowNum){
        if (lowNum % factor == 0){      
            result += factor + ", <br />";  
        }        
        lowNum++;
    }
}
return result;

}

getFactors(2, 10);

2 个答案:

答案 0 :(得分:3)

在你的while循环中,你正在递增lowNum而不是factor,所以循环将永远运行。更改此功能时,它可在我的浏览器中使用请注意,以免用户输入太多数字,浏览器崩溃/冻结。

你的逻辑也有点不对,因为你在while循环中使用lowNum而不是x。在您的代码中,您基本上不使用x。

这是你的while循环编辑,所以它的工作方式如下:

while(factor <= x){
    if (x % factor == 0){      
        result += factor + ", <br />";  
    }        
    factor ++;
}

答案 1 :(得分:1)

除了Izzey的回答:您在xlowNum之间的highNum的所有值都运行完全相同的代码。您应该在x循环中使用lowNum而不是while