C++计算最大公约数(辗转相除法)
来源:互联网 发布:淘宝刷粉丝刷收藏软件 编辑:程序博客网 时间:2024/04/29 21:54
典型例题:
一.辗转相除法
例1 。求两个正数8251和6105的最大公因数。
(分析:辗转相除→余数为零→得到结果)
解:8251=6105×1+2146
显然8251与6105的最大公因数也必是2146的因数,同样6105与2146的公因数也必是8251的因数,所以8251与6105的最大公因数也是6105与2146的最大公因数。
6105=2146×2+1813
2146=1813×1+333
1813=333×5+148
333=148×2+37
148=37×4+0
则37为8251与6105的最大公因数。
以上我们求最大公因数的方法就是辗转相除法。也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。
1. 为什么用这个算法能得到两个数的最大公因数?
利用辗转相除法求最大公因数的步骤如下:
第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:若r0=0,则n为m,n的最大公因数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:若r1=0,则r1为m,n的最大公因数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
……
依次计算直至rn=0,此时所得到的rn-1即为所求的最大公因数。
练习:利用辗转相除法求两数4081与20723的最大公因数。
2。辗转相除法包含重复操作的步骤,因此我们可用__循环_______结构来构造算法,
利用辗转相除法求最大公因数的步骤:
- C++计算最大公约数(辗转相除法)
- C++计算最大公约数(辗转相除法)
- 辗转相除法计算最大公约数
- 最大公约数(辗转相除法)
- 最大公约数(辗转相除法)
- 最大公约数(辗转相除法)
- 辗转相除法(最大公约数)
- 辗转相除法求最大公约数(C语言)
- C语言辗转相除法(欧几里德算法)求最大公约数
- C语言辗转相除法求最大公约数(欧几里得算法)
- 辗转相除法求最小公倍数及最大公约数(C++)
- C语言 辗转相除法求最大公约数
- 辗转相除法求最大公约数---C语言
- c语言 辗转相除法求最大公约数
- 辗转相除法 最大公约数
- 最大公约数:辗转相除法
- 最大公约数 辗转相除法
- 最大公约数(辗转相除法)
- 对Java的一个简单思考
- C++编程,数据结构,算法类面试题集(1)
- C++编程,数据结构,算法类面试题集.(2)
- C++编程,数据结构,算法类面试题集.(3)
- 基于java-web的登录系统 密码及用户名固定
- C++计算最大公约数(辗转相除法)
- java.lang.ClassNotFoundException: org.mortbay.util.ajax.JSON$Source的问题解决
- VBScript删除子文件夹和文件的程序,自己定义删多深
- InstallShield利用环境变量得到INSTALLDIR,结合custom action来实现完全卸载
- 对A*算法的路径进行优化
- GARCH MODEL in R, Sample Code for GARCH(1,1)
- c+中如何查看一个类的内存布局
- OCJP之国际化 更新中
- 常量,引用,对象成员的初始化要在成员初始化表中进行,不可以直接=号赋值。