美文网首页
程序设计-求最大公因数

程序设计-求最大公因数

作者: 坠入莱茵河 | 来源:发表于2021-05-09 18:17 被阅读0次

程序设计-求最大公因数

本文使用欧几里得算法来求最大公因数

最大公因数:能够同时整除两个整数的最大整数。

即,15和35的最大公因数为5。因为15 = 3 x 5 35 = 7 x 5 = 35 它们能够同时被5整除

欧几里得算法:又称辗转相除法,通过对两数连续应用带余除数,每一步的除数和被除数都是上一步的除数和余数而来。运算知道余数为0停止。 最大公因数为最后一个非0余数
例:使用欧几里得算法求(36, 81)得最大公因数

81 = 2 * 36 + 9      (9, 36)
36 = 4 * 9  + 0      (0, 9)

此时余数为0 除数为9 则(36,81)得最大公因数为9.

程序设计

1⃣️ 计算余数和除数
大数除小数得余 去放到下一层计算

if (a > b) {
  return gcd(a % b, b);
} else {
  return gcd(b % a, a);
}

2⃣️ 确定终止条件
其中一个为0,则返回另一个 此数则为最大公因数

  if (a == 0) return b
  if (b == 0) return a

代码实现

/**
 * @method gcd 求最大公因数
 * @params { number } 整数a
 * @params { number } 整数b
 * @return { number } 最大公因数
 **/
let gcd = (a, b) => {
  if (a == 0) return b
  if (b == 0) return a
  if (a > b) {
    return gcd(a % b, b);
  } else {
    return gcd(b % a, a);
  }
}

console.log(gcd(102, 999)) // 3

相关文章

  • 程序设计-求最大公因数

    程序设计-求最大公因数 本文使用欧几里得算法来求最大公因数。 最大公因数:能够同时整除两个整数的最大整数。 即,1...

  • 【教学随笔】最大公因数

    教学过程 1.看到课题,有什么问题? 最大公因数怎么求? 公因数是什么? 最大公因数和因数有什么关系? 2.什么是...

  • 辗转相除法求最大公因数的原理

    辗转相除法求最大公因数的原理 一、辗转相除法可以求两个因数的最大公因数。(欧几里德算法) 1.我们可以用列举法、筛...

  • 求最大公因数问题

    求最大公因数,就是找分子与分母中最小的那个数(本身可能是最大公因数),然后在取一个中间变量,不断接近最小数,看...

  • 最小公倍数教学中的困惑

    求两个数的最大公因数最主要的应用就是约分,约分时分子分母同时除以它们的最大公因数即可。在这一概念教学时,涉及到因数...

  • 欧几里得算法

    广义欧几里得除法:(求最大公因数) 欧几里得的定理: gcd(a, b) = gcd(b , a%b) 扩展欧几里...

  • 欧几里得算法

    题目:给定两个正整数m 、n,求它们的最大公因数(即同时整除m、n的最大正整数) 思路如下: 1、(求余数)用 m...

  • 趣味数学故事72……辗转相除法

    在我国古代,人们就开始利用辗转相除法来求较大的两个数的最大公因数了。 用辗转相除法求两个数的最大公...

  • 欧几里得算法——计算最大公因数

    计算最大公因数的欧几里得算法 最大公因数 最大公因数,也称最大公约数,指两个或多个整数共有约数中最大的一个。a,b...

  • 《找最大公因数》的教学反思

    本节内容是求两个数的公因数和最大公因数,是在学生掌握了因数概念的基础上进行教学的,主要是为学习约分做准备。本...

网友评论

      本文标题:程序设计-求最大公因数

      本文链接:https://www.haomeiwen.com/subject/gkkvdltx.html