使用Table Method找到所提供的参数的最小公倍数,它们可以被两者均匀分开,也可以通过这些参数之间的范围内的所有连续数字来求出。只有两个参数。对于例[1,3],找到1,2,3的lcm。使用表格方法查找最小公倍数
注意 - 它可以创建一个无限循环
function smallestCommons(arr) {
var nums = [];
var multiples = [];
if(arr[0]>arr[1]) {
var bigger = arr[0];
} else {
var bigger = arr[1];
}
for(var i=bigger;i>0;i--) {
nums.push(i);
console.log(i);
}console.log(nums + " nums");
var sums = 0;
while(sums != nums.length) {
for(var k=0;k<nums.length;k++) {
if(nums[k] % 2 === 0) {
nums[k] = nums[k]/2;
multiples.push(2);
} else if(nums[k] % 3 === 0) {
nums[k] = nums[k]/3;
multiples.push(3);
}else if(nums[k] % 5 === 0) {
nums[k] = nums[k]/5;
multiples.push(5);
}else if(nums[k] % 7 === 0) {
nums[k] = nums[k]/7;
multiples.push(7);
}else if(nums[k] === 1) {
break;
}else {
nums[k] = nums[k]/nums[k];
multiples.push(nums[k]);
}
}
for(var j = bigger; j>0;j--) {
sums = sums + nums[j];
}
}
var scm = [multiples].reduce(function(a,b){console.log(a*b)}); return scm
}
smallestCommons([1,5]);
是什么你的实际需求? –
我希望它首先将数字除以最小的素数(2),如果均匀可分割将其推到倍数,如果不是,则移动到下一个素数,等等......最后,将倍数与自身相乘并由此得出答案(lcm) – Lavios
nums [k] = nums [k]/nums [k];这条线给你什么? –