博客
关于我
两个数求最大公约数和最小公倍数的方法和理解
阅读量:346 次
发布时间:2019-03-04

本文共 649 字,大约阅读时间需要 2 分钟。

int GreatestCommonDivisor(int a, int b) {    int t;     if (a < b) {        // 交换两个数,使大数放在a的位置上。        t = a;        a = b;        b = t;    }     while (b != 0) {        // 利用辗转相除法,直到b为0为止。        t = a % b;        a = b;        b = t;    }     return a;} int LeastCommonMultiple(int a, int b) {    int t = a * b / GreatestCommonDivisor(a, b);    return t;}
  1. 反复a%b得到余数为0时候,就可以得到最大公约数,为什么呢,因为如下:(利用最大公约数不会超过小的那个数的性质)简单来说,被除数被分成了两坨,一坨可以被除数整除,一坨是余数,现在都可以被整除的玩意必然也可以被最后的最大公约数整除,所以只用找余数与除数的最大公因数,然后同理,余数与除数又分别成了被除数和除数,直至最后整除。
  2. 设两个数为ak bk
    k为最大公约数 则最小公倍数为abk,因为最小公倍数m的意思就是m除以ak,bk分别得到的数不能再进行约下去了,而abk/ak=b,abk/bk=a,a和b根据最大公约数定义即第一步,是不能再相约了的,因此这个abk就是最小公倍数。

转载地址:http://xacr.baihongyu.com/

你可能感兴趣的文章
css取消双击选中文字
查看>>
LeetCode 116填充每个节点的下一个右侧结点指针
查看>>
2021-4-28【PTA】【L2-1 包装机 (25 分)】
查看>>
Arduino mega2560+MPU6050利用加速度值控制舵机
查看>>
pycharm+python+MS SQLSERVER 实战2、实现爬虫程序。
查看>>
深入理解数组指针与指针数组的区别
查看>>
iOS客户端与PHP服务端的简单交互
查看>>
Python的异常处理
查看>>
紫书——蛇形填数
查看>>
刷题计划1——poj1753
查看>>
第一场
查看>>
蓝桥杯备战——刷题(2019)
查看>>
未定义的变量“py”或函数“py.command”
查看>>
我们,都一样......(句句入心)
查看>>
总结了一下c/c++函数和变量的命名规则
查看>>
关于构造函数内调用虚函数的问题
查看>>
最短路径问题—Dijkstra算法
查看>>
求二叉树的深度
查看>>
录音功能
查看>>
c++面经基础知识汇总(类型转换、new/delete/malloc/free、什么是RTTI)
查看>>