JS函数输出范围进入无限远

时间:2015-11-17 12:54:21

标签: javascript range infinity

大家好

我必须完成以下任务:

将LCM(N)定义为1,2,3,...,N的最小公倍数。 求LCM(N)mod 10 ^ 8.

这是一个例子:LCM(27)= 13433200

我的问题是函数leastCommonMultiple(min,max)在某些情况下返回 infinit 。 我已经到目前为止了:



function LCM(N) {
    return leastCommonMultiple(1, N) % Math.pow(10,8);
}

function leastCommonMultiple(min, max) {
    function range(min, max) {
        var arr = [];
        for (var i = min; i <= max; i++) {
            arr.push(i);
        }
        return arr;
    }

    function gcd(a, b) {
        return !b ? a : gcd(b, a % b);
    }

    function lcm(a, b) {
        return (a * b) / gcd(a, b);   
    }

    var multiple = min;
    range(min, max).forEach(function(n) {
        multiple = lcm(multiple, n);
    });

    return multiple;
}
&#13;
&#13;
&#13;

如果有人在数学和JS方面有很好的技能并且可以帮助我解决这个问题,那将是很酷的。

问候:)

0 个答案:

没有答案