3个或更多数字的最小公倍数如何计算多个数字的最小公倍数?到目前为止,我只能在两个数字之间进行计算。但不知道如何扩展它来计算3个或更多数字。到目前为止,这就是我做到的LCM = num1 * num2 / gcd ( num1 , num2 )使用gcd是计算数字的最大公约数的函数。使用欧几里得算法但我无法弄清楚如何计算3个或更多数字。
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
这是一个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)); }}
添加回答
举报
0/150
提交
取消