Smallest Common Multiple

来源:互联网 发布:node.js userlist 编辑:程序博客网 时间:2024/06/05 09:04

题目

找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。

范围是两个数字构成的数组,两个数字不一定按数字顺序排序。

例如对 1 和 3 —— 找出能被 1 和 3 和它们之间所有数字整除的最小公倍数。

要求

smallestCommons([1, 5]) 应该返回一个数字。smallestCommons([1, 5]) 应该返回 60。smallestCommons([5, 1]) 应该返回 60。smallestCommons([1, 13]) 应该返回 360360。 

代码

//先求arr[n]与arr[n+1]的最小公倍数,再求其与arr[n+2]的最小公倍数....以此类推function smallestCommons(arr) {  var a = Math.min(arr[0],arr[1]);  var b = Math.max(arr[0],arr[1]);  var s_commons = a;  while(a < b) {    a++;    s_commons = commonMultiple(s_commons,a);  }  return s_commons;}//辗转相除法求最小公倍数function commonMultiple(a,b){  var temp;  var min = a;  var max = b;  while(b !== 0) {    temp = a % b ;    a = b;    b = temp;  }  var result = min*max/a ;  return result;}smallestCommons([1,10]);
原创粉丝点击