题解 | #求最小公倍数#

求最小公倍数

https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3

基本解法:短除法
例:求9和15的最小公倍数。
    3  9   15 
          3    5  
最小公倍数为:3 * 3 * 5 = 45
当求a、b的最小公倍数时,令min = min(a,b),从2到min循环,若a、b能同时被i整除,则将i推入数组arr,a更新为a/i,b更新为b/i,min更新为min(a,b),继续从2到min开始循环。如不能整除,i++,将1推入数组arr中。
当循环结束时,将arr中的每个元素相乘,在乘以a、b即为最小公倍数。
let input = readline().split(' ');
let a = +input[0];
let b = +input[1];
function getMinMultiple(a,b){
  let min = Math.min(a,b);
  let part = [];
  for(let i = 2;i<=min;){
    if(a%i===0 && b%i===0){
      part.push(i);
      a=a/i;
      b=b/i;
      min = Math.min(a,b);
    }else{
      part.push(1);
      i++;
    }
  }
  return part.reduce((h,it)=>h*it,a*b)
}
print(getMinMultiple(a,b));

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务