c++求几个数的最大公约数_短除法与最大公约数、最小公倍数

65082732f0ce7cc573af66f8b2fb1c5a.gif



  • 求几个数的最大公约数或最小公倍数的基本方法有:

    • 因数分解法、短除法、辗转相除法等

这里重点收藏一下 “短除法” 求若干数的最大公约数和最小公倍数的区别。
  • 求 n 个数的最大公约数:

    • (1)必须每次都用 n 个数的公约数去除;

    • (2)一直除到 n 个数的商互质(但不一定两两互质);

    • (3)n 个数的最大公约数即为短除式中所有除数的乘积。

  • 求 n 个数的最小公倍数:

    • (1)必须先用(如果有)n 个数的公约数去除,除到 n 个数没有除去 1 以外的公约数后,再用 n-1 个数的公约数去除,除到 n-1 个数没有除去 1 以外的公约数后,再用 n-2 个数的公约数去除,如此继续下去 —— 为保证这一条,每次所用的除数均可选用质数;

    • (2)只要有两个数(被除数)能被同一数整除,就要继续除,一定要除到 n 个数的商两两互质为止;

    • (3)n 个数的最小公倍数即为短除式中,所有除数和最后两两互质的商的乘积。

  • 最大公约数很好理解,和定义是高度一致的。

  • 最小公倍数其实也是按照定义规则来进行的,从因数分解的角度来看就比较好理解:

    • n 个数的公约数肯定只用乘 1 次;

    • 剩下的 n-1、n-2、……、2 个数之间还有的公约数,自然是能省就省,能少乘就少乘;

    • 到最后两两互质的时候,才 “迫不得已” 挨个把所有的商都乘上一遍。


以上方法,可以用 “36, 108, 112” 来做个练习巩固一下:
  • 最大公约数:

    • 36、 108、 112 除以 2

    • 18、 54、 63 除以 3

    • 6、 18、 21 除以 3

    • 2、 6、 7

  • 最大公约数为:

    • 2×3×3=18

  • 最小公倍数:

    • 36、 108、 112 除以 2

    • 18、 54、 63 除以 3

    • 6、 18、 21 除以 3

    • 2、 6、 7 —— 2 和 6 除以 2

    • 1、 3、 7

  • 最小公倍数为:

    •     2×3×3×2×1×3×7

    • =756

  • —— 这里除到 2、 6、 7 的时候,显然:

    • 没有必要用 2×3×3×2×6×7 的方式来计算最小公倍数:

      • 至少乘了 6 就肯定包含 2 了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值