Javascript 可被除的最小公倍数

Javascript 可被除的最小公倍数,javascript,algorithm,lcm,Javascript,Algorithm,Lcm,我在使用JavaScript,我正在求解最小公倍数,对于两个数字,最小公倍数必须能被两个数字之间的所有数字整除 现在,我的代码根本不起作用,没有返回任何内容。我有一个函数来计算最小公倍数,还有一个函数来确定这个倍数是否可以被最小和最大数之间的数整除 function smallestCommons(arr) { var max = 0; var min = 0; var lcm = 0; var max2 = 0; if(arr[0]> ar

我在使用JavaScript,我正在求解最小公倍数,对于两个数字,最小公倍数必须能被两个数字之间的所有数字整除

现在,我的代码根本不起作用,没有返回任何内容。我有一个函数来计算最小公倍数,还有一个函数来确定这个倍数是否可以被最小和最大数之间的数整除

function smallestCommons(arr) {

    var max = 0;
    var min = 0;
    var lcm = 0;
    var max2 = 0;
       if(arr[0]> arr[1]) {
         max = arr[0];
         min = arr[1];
       } else {
         max = arr[1];
         min = arr[0];
       }

       function range(item){
         for(var j = min+1; j < max; j++){
           if(item % j !== 0){
             return 0;
           } else {
             return item;
           }
         }
       }   
       function lcmFind(min1, max1){
         for(var i =1; i < min1; i++){
             max1 = max1 * i;

             if(range(max1) === 0){
               continue;
             } else {
               return range(max1);
             }       
           }  
         }         
       return lcmFind(min,max);    
     }
     smallestCommons([1,5]);
function smallestCommons(arr){
var max=0;
var min=0;
var-lcm=0;
var max2=0;
if(arr[0]>arr[1]){
max=arr[0];
min=arr[1];
}否则{
max=arr[1];
min=arr[0];
}
功能范围(项目){
对于(var j=min+1;j
您正在寻找lcm,或最不常见的多重编码。碰巧的是,
lcm(a,b)=a*b/gcd(a,b)
其中gcd是最大公约数,是两个数的倍数。有一种称为欧几里德算法的快速计算gcd的算法:
gcd(a,b)=gcd(b,a%b)
其中
a%b
a模b
。在javascript中,就是这样

function gcd(a, b) {
    if (b == 0) {
        return a; // so that the recursion does not go on forever
    } else {
        return gcd(b, a % b);
    }
}
然后,您可以这样定义lcm

function lcm(a, b) {
    return a * b / gcd(a, b);
}
编辑:为了计算数字列表的lcm,只需使用lcm函数进行缩减即可。因此,为了计算一个范围内所有数字的lcm,此代码将起作用。(假设该范围包含2个参数)

功能范围(a、b){
var范围=[];

对于(var i=a;i您正在寻找lcm,或最小公倍数。碰巧的是,
lcm(a,b)=a*b/gcd(a,b)
其中gcd是最大公因数,两个数字都是其倍数的最大数。有一种称为欧几里德算法的快速计算gcd:
gcd(a,b)=gcd(b,a%b)
其中
a%b
a模b
。在javascript中,就是这样

function gcd(a, b) {
    if (b == 0) {
        return a; // so that the recursion does not go on forever
    } else {
        return gcd(b, a % b);
    }
}
然后,您可以这样定义lcm

function lcm(a, b) {
    return a * b / gcd(a, b);
}
编辑:为了计算数字列表的lcm,只需使用lcm函数进行缩减。因此,为了计算某个范围内所有数字的lcm,此代码将起作用。(假设该范围包含两个参数)

功能范围(a、b){
var范围=[];

对于(var i=a;i如果你做了一个小的研究,你可能很容易找到这个。互联网上有很多计算lcm的代码。我的程序是计算lcm,它也可以被最小和最大的数字整除。那么你不能称它为lcm。两个给定的数字只能有一个lcm。任何东西都需要第三个lcm条件不是LCM。如果你做了一个小的研究,你会很容易发现这一点。互联网上有很多计算LCM的代码。我的程序是计算LCM,它也可以被最小和最大的数字整除。那么你不能称它为LCM。两个给定的数字只能有一个LCM。需要什么吗uires第三个条件不是LCM。我找到了计算LCM的前一个问题。互联网上也有很多计算LCM的代码。我的程序是计算LCM,这个LCM也可以被最小值和最大值之间的数字整除。@DanielSemel我编辑了我的答案,展示了如何获得列表的LCM。我找到了p计算lcm的上一个问题。互联网上也有很多计算lcm的代码。我的程序是计算lcm,它也可以被最小值和最大值之间的数字整除。@DanielSemel我编辑了我的答案,以说明如何获得列表的lcm。