为什么此循环在中途终止?

问题描述:

我正在尝试编写一个程序来查找所提供的参数的最小公倍数,这些参数可以被这两个参数之间的范围内的所有连续数字均分。为什么此循环在中途终止?

范围将是一个两个数字的数组,不一定按数字顺序排列。

例如,对于图1和3 - 找到既1和3是由1和3

为什么在i中的循环停止= 510000(或之间的所有数字整除的最小公倍接近于此)而不是700万,就像我设定的那样?

我也有输出截图:

function smallestCommons(arr) { 
 
    
 
    var start; 
 
    var finish; 
 
    var something; 
 
    
 
    if(arr[0] < arr[1]){start = arr[0]; finish = arr[1];}else{ 
 
     start = arr[1]; finish = arr[0]; 
 
    } 
 
    
 
    for(var i = finish;i <= 7000000;i++){ 
 
    var boolea = true; 
 
    for(var j = start;j <= finish;j++){ 
 
     if(i % j !== 0){boolea = false;break;} // 2 % 1 
 
    } 
 
    
 
    if(boolea)return i; 
 
    
 
    something = i; 
 
    } 
 
    
 
    console.log("final i = " + i); 
 
    
 
    return 0; 
 
}

+0

也许浏览器内存不足。 – Valay

+0

你的调试器告诉你什么? –

+2

请尝试https://jsbin.com/blog/protection#loopprotection以检查jsbin是否不强制您的代码退出循环 –

尝试在你的循环的开头添加这

它必须是jsbin强制你的代码退出循环。请参阅source