求两个数最小公倍数的办法:两数相乘除以最大公因数。
方法:
- 先求出前两个数的最小公倍数
- 用上一步的最小公倍数和新的数求最小公倍数
题目:
找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。
范围是两个数字构成的数组,两个数字不一定按数字顺序排序。
题目来源:freecodecamp
1 function smallestCommons(arr) { 2 ?var min=Math.min(arr[0],arr[1]);//确定大小顺序 3 ?var max=Math.max(arr[0],arr[1]); 4 ?var result=Common(min,min+1);//初始result 5 ?min+=2; 6 ?for(;min<=max;++min) 7 ????8 ?{ 9 ??result=Common(result,min);10 ?}11 ??return result;12 }13 14 function Common(m,n)15 {16 ??var arr=[],i;17 ??var r=m*n;18 ??if(m%n==0) return m;//如果本来就是倍数关系,直接返回大数19 ??for(i=2;i<=m;++i)20 ????{21 ??????if(m%i==0) arr.push(i);//求大数的所有因数22 ????}23 ??for(i=n;i>=2;--i)//从最大因数向下检索是否存在另一个数的因数24 ????{25 ??????if(n%i==0&&arr.indexOf(i)!=-1) 26 ?????????return m*n/i;//存在直接返回两数之积除以最大公因数27 ????????28 ????????29 ????}30 ??31 ??return r;//若两数相质,直接返回两数乘积32 33 }34 35 smallestCommons([1,13]);[JS]求一组数的最小公倍数
原文地址:https://www.cnblogs.com/cuphoria/p/9741115.html