Javascript 低于另一个值的整数的最大整因子

Javascript 低于另一个值的整数的最大整因子,javascript,integer,Javascript,Integer,我有一个任意值(在示例mx中,例如可以是4)和一个整数(x),其值可以是从4到整数限制的任何值。我的目标是找到小于mx的x的最大因子。如果x是素数,我可以接受下一个更大的值。到目前为止,我的尝试是沿着 function smFacBelowX(_x,mx){ var x = _x; if((x%mx)==0) return mx; while(mx<x){ if((x%2)>0) x--; x = x/2; co

我有一个任意值(在示例
mx
中,例如可以是4)和一个整数(
x
),其值可以是从4到整数限制的任何值。我的目标是找到小于
mx
x
的最大因子。如果
x
是素数,我可以接受下一个更大的值。到目前为止,我的尝试是沿着

function smFacBelowX(_x,mx){
    var x = _x;
    if((x%mx)==0) return mx;
    while(mx<x){
        if((x%2)>0) x--;
        x = x/2;
        console.log(_x,x,mx);
    }
    return x;
}
函数smfacblowx(x,mx){
var x=_x;
if((x%mx)==0)返回mx;
而(mx0)x-;
x=x/2;
console.log(x,x,mx);
}
返回x;
}

我会用任何语言回答,但更喜欢JavaScript。

尽管你没有说有什么问题,但我认为JavaScript中缺少整数运算。您可以尝试以下方法作为开始:

function X(_x,mx){
    var x = _x;
    if((x%mx)==0) return mx;
    while(mx<x){
        if((x%2)>0) x--;
        x = Math.floor(x/2);
        console.log(_x,x,mx);
    }
    return x;
}
函数X(X,mx){
var x=_x;
if((x%mx)==0)返回mx;
而(mx0)x-;
x=数学楼层(x/2);
console.log(x,x,mx);
}
返回x;
}

您的代码有问题吗?否则,堆栈溢出不是讨论代码的合适场所。@FelixKling As is代码返回的值对于某些值来说太小。我将把这一点补充到问题中。