📅  最后修改于: 2023-12-03 15:27:47.036000             🧑  作者: Mango
该程序是一个用于查询给定范围内多个数的最小公倍数的Javascript程序。
本程序接受两个整数l和r,代表查询范围的左右边界。然后,它接受一个包含多个整数的数组arr,用于查询给定范围内这些数的最小公倍数。最后,程序返回查询结果的数组。
function lcmInRange(l, r, arr) {
var lcmArr = [];
for (var i = l; i <= r; i++) {
var lcm = i;
for (var j = 0; j < arr.length; j++) {
if (lcm % arr[j] != 0) {
lcm *= arr[j] / gcd(lcm, arr[j]);
}
}
lcmArr.push(lcm);
}
return lcmArr;
}
function gcd(a, b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
该程序首先定义了两个函数,一个是lcmInRange(l, r, arr)
,另一个是gcd(a, b)
。lcmInRange(l, r, arr)
函数接受三个参数,l和r用于定义查询范围,arr是要查询的整数数组。
接下来,在lcmInRange(l, r, arr)
函数中,我们首先创建一个空数组lcmArr
用于存储查询结果。然后我们使用一个for循环遍历查询的范围,从l
到r
。在每一次的迭代中,我们首先定义一个变量lcm
,它的初始值为当前循环的数i
。
然后,我们使用另一个for循环遍历要查询的整数数组arr
。在每一次迭代中,我们检查当前的lcm
能否被当前的元素整除。如果不能,我们就使用gcd(a, b)
函数计算出这两个数的最大公约数,然后将它们的乘积除以最大公约数得到最小公倍数,并将结果更新到当前的lcm
。
最后,我们将得到的最小公倍数存储到lcmArr
数组中,并最终返回该数组的结果。
gcd(a, b)
函数用于计算两个整数a和b的最大公约数。它通过递归计算,直到找到a和b的最大公约数。
var l = 3;
var r = 7;
var arr = [2, 3, 4];
console.log(lcmInRange(l, r, arr));
输出结果为:[12, 6, 12, 12, 60]
我们成功地使用了该程序查询出了在给定范围内数组arr
中多个整数的最小公倍数。