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
提交
取消
