3个或更多数字的最小公倍数

3个或更多数字的最小公倍数

如何计算多个数字的最小公倍数?

到目前为止,我只能在两个数字之间进行计算。但不知道如何扩展它来计算3个或更多数字。

到目前为止,这就是我做到的

LCM = num1 * num2 /  gcd ( num1 , num2 )

使用gcd是计算数字的最大公约数的函数。使用欧几里得算法

但我无法弄清楚如何计算3个或更多数字。


茅侃侃
浏览 916回答 3
3回答

拉莫斯之舞

您可以通过迭代计算两个数字的LCM来计算两个以上数字的LCM,即lcm(a,b,c) = lcm(a,lcm(b,c))

阿波罗的战车

这是一个ECMA风格的实现:function gcd(a, b){     // Euclidean algorithm     var t;     while (b != 0){         t = b;         b = a % b;         a = t;     }     return a;}function lcm(a, b){     return (a * b / gcd(a, b));}function lcmm(args){     // Recursively iterate through pairs of arguments     // i.e. lcm(args[0], lcm(args[1], lcm(args[2], args[3])))     if(args.length == 2){         return lcm(args[0], args[1]);     } else {         var arg0 = args[0];         args.shift();         return lcm(arg0, lcmm(args));     }}
打开App,查看更多内容
随时随地看视频慕课网APP