短除法求最大公约数

上次讲到了如何用欧几里得算法求最大公约数,这次我们用另外一种方法来求,这种方法大家在以前应该也听说过,我在这里为大家演示一下步骤然后用代码来实现。欧几里得算法是不断地排除多余项,然后找到能够整除的一个数,短除法是不断地找两个数的最小公约数,直到找不到为止,然后把所有的最小公约数乘起来,就是最大公约数。

注:此图为作者所画,不允许转载!

上图便是短除法求最大公约数的步骤,接下来附上实现代码:

#include<bits/stdc++.h>
using namespace std;
int comment(int m,int n)
{int r = 1;for(int i = 2;i<=m&&i<=n;i++){while(m%i==0&&n%i==0){      //while 的用法是用来控制从最低的二开始判断的 r = r*i;m = m/r;n = n/r;}}return r;
}
int main()
{int m,n,t;cin>>m>>n;t = comment(m,n);cout<<t<<endl;return 0;
}

亲测可以实现,欢迎大佬们提出意见……

算法归总—短除法求最大公约数相关推荐

  1. c语言编程最大公约数穷举发,C语言基本算法 :1.求最大公约数与最小公倍数

    C语言基本算法 :1.求最大公约数与最小公倍数 一.最大公约数: 最大公约数目前有三种求法:更相减损术.辗转相除法以及穷举法. 1.更相减损术: 算法介绍:设两个整数数a和b,以较大数减较小数,得出的 ...

  2. 【常用算法】辗转相除法求最大公约数

    辗转相除法,又称欧几里德算法(Euclidean Algorithm),是求两个数的最大公约数(greatest common divisor)的一种方法.用较大的数除以较小的数,再以除数和余数反复做 ...

  3. c语言有参有类最小公倍数,C语言求最大公约数和最小公倍数算法

    C 语言求最大公约数和最小公倍数算法 C 语言求最大公约数和最小公倍数可以说是C 语言编程学习中一个重点和难点,它常常作为计算机专业学生参加各种考试必须要把握的内容.其算法方面除常用的辗转相除法外.还 ...

  4. C语言求最大公约数GCD的算法(附完整源码)

    C语言求最大公约数GCD的算法 C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试) C语言求最大公约数GCD的算法完整源码(定义,实现,main函数测试) #include < ...

  5. 求最大公约数,最小公倍数算法

    最大公约数和最小公倍数的算法 一般常见的算法有:求差判定法,欧几里得算法,Stein算法. 这边重点介绍欧几里得算法,就是常说的辗转相除法,是经典的求解最大公约数的算法. 辗转相除法求最大公约数: 算 ...

  6. c语言求最大公约数多一个负号,C语言 求最大公约数

    质因数分解法 质因数分解 质因数分解法:把每个数分别分解质因数,再把各数中的全部公有质因数提取出来连乘,所得的积就是这几个数的 最大公约数. 例如:求24和60的最大公约数,先分解质因数,得24=2× ...

  7. c语言怎样求最大公约数,c语言求最大公约数

    求差判定法. 如果两个数相差不大,可以用大数减去小数,所得的差与小数的最大公约数就是原来两个数的最大公约数.例如:求78和60的最大公约数.78-60=18,18和60的最大公约数是6,所以78和60 ...

  8. 最大公约数简便算法_求最大公约数的4种算法

    for(z=0; z<10000000; z++) 循环只是为了增加程序的运行时间, 让我们体会算法的时间复杂度. 算法一:短除法 想法,采用短除法找出2个数的所有公约数,将这些公因子相乘,结果 ...

  9. JavaScript实现求最大公约数 (GCD)的算法(附完整源码)

    JavaScript实现求最大公约数 (GCD)的算法(附完整源码) euclideanAlgorithm.js完整源代码 euclideanAlgorithm.js完整源代码 export defa ...

  10. 欧几里德算法求最大公约数

    在求两个数的最大公约数方法中, 辗转相除法是比较快的一种方法. 也就是著名的欧几里德方法. View Code int Gcd(int a, int b){return b==0?a:gcd(b, a ...

最新文章

  1. 干货回顾丨深度学习性能提升的诀窍
  2. C语言的本质(3)——整数的本质与运算
  3. 怎么验证proftpd安装成功_英雄联盟手游泰服安卓账号怎么注册
  4. *【牛客 - 318B】签到题(单调栈,水题)
  5. Python数据结构与算法(三)--数据结构的概念
  6. java中如何上送list集合_如何使用java中的list集合
  7. 熬夜整理了免费的数据源网站大全,再也不愁找不到数据练手
  8. QQ 新增“语音进度条”;滴滴顺风车负责人道歉;华为研发费将超 1000 亿美元 | 极客头条...
  9. 华为机试HJ44:Sudoku(数独问题,深度优先遍历DFS解法)
  10. A Simple but Tough-to-Beat Baseline for Sentence Embeddings阅读笔记
  11. Mysql8.0安装步骤
  12. Linux命令c++filt
  13. als算法参数_矩阵分解之交替最小二乘ALS
  14. 干货分享!软考中高项案例分析10大管理领域理论背诵要点
  15. 真人拳皇项目第二次Scrum总结——史经浩
  16. 一年级abb式词语并造句_abb词语造句,用ABB词语造句
  17. 在数据库中存储IP地址
  18. Git | 登录验证失效问题
  19. Chrome浏览器中清除特定网站的Cookie数据
  20. 苹果以旧换新活动_同是以旧换新,苹果OPPO有哪些差异?懂手机的都知道它更良心...

热门文章

  1. 使用C++开发的NES(FC)模拟器
  2. 关于es8316的音频爆破音的解决
  3. 命令行方式实现QQ自动登录
  4. c# 中通快递对接_物流快递单号智能识别快递公司API接口 C#
  5. 电脑“开始-运行”的常用命令及用法!很有用!
  6. 合肥学院计算机论文,合肥学院本科生毕业论文.doc
  7. uniapp左侧抽屉抽屉
  8. 天下数据解析域名及域名转向
  9. Unity 2d - 基础 - 碰撞(一) - 针对性碰撞
  10. BZOJ 2037: [Sdoi2008]Sue的小球(DP)