求出最小公倍数

我使用更相减损法完成了这个挑战,真是可怕又冗余的代码行数。


function smallestCommons(arr)
{
  function minCommon(a,b) 
  {
    let x = maxYue(a,b);
    return a*b/x;
  }
  function maxYue(a,b) {
    if (a%2===0 && b%2===0)
    {
      a = a/2;
      b = b/2;
      while (a !== b)//10,15
      {
        if(a>b)
        {
          a = a-b;//a=5,b=5;a=6,b=2;a=2,
        }
        else
        {
          b = b-a;//b = 5,a = 10;
        }
      }
      return a*2;
    }
    while (a !== b)//10,15
      {
        if(a>b)
        {
          a = a-b;//a=5,b=5;a=6,b=2;a=2,
        }
        else
        {
          b = b-a;//b = 5,a = 10;
        }
      }
    return a;
  }
  let newArr = [];
  for (let i = arr[0];i <= arr[1]; i++)
  {
    newArr.push(i);
  }
  let temp = minCommon(newArr[0],newArr[1]);
  for (let i = newArr[2]; i <= newArr[newArr.length-1]; i++)
  {
    temp = minCommon(temp,i);
  }
  return temp;
}
console.log(smallestCommons([1,5]));

大致分为三个步骤,先使用更相减损法求出最大公约数,然后求出两个数的最小公倍数,最后再和第三个数进行比较。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 小学奥数的知识点约 80个,总体上可以分为五大类。数论和行程问题是小 学奥数学习中的重点也是难点。 一、 计算能力...
    ADolphin阅读 12,662评论 1 3
  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 7,654评论 0 5
  • 小升初的过程中,竞赛成绩能起到相当大的作用,谈到竞赛就离不开奥数。以下是小学奥数题知识点大汇总: 1.和差倍问题 ...
    沪江中小幼阅读 4,822评论 0 7
  • 小学奥数其实很简单,以下是这六个部分的知识点! 1 第一部分(知识点1-6) 2、年龄问题的三个基本特征: ①两个...
    小一哥阅读 5,163评论 0 3
  • 要找一个三观合拍的人,要找一个步调一致的人。以前可能还比较注重对方的外貌,现在越来越发现合适是多么重要,生活不能仅...
    夏小姐姐阅读 1,878评论 0 1