辗转相除法
来源:互联网 发布:安卓大尺度直播软件 编辑:程序博客网 时间:2024/06/05 18:55
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
假设有两个数x和y,存在一个最大公约数z=(x,y),即x和y都有公因数z,
那么x一定能被z整除,y也一定能被z整除,所以x和y的线性组合mx±ny也一定能被z整除。(m和n可取任意整数)
对于辗转相除法来说,思路就是:若x>y,设x/y=n余c,则x能表示成x=ny+c的形式,将ny移到左边就是x-ny=c,由于一般形式的mx±ny能被z整除,所以等号左边的x-ny(作为mx±ny的一个特例)就能被z整除,即x除y的余数c也能被z整除。
int gcd(int x , int y){ if(!y) return x; else return gcd(y , x%y);}
阅读全文
0 0
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法 最大公约数
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 温习辗转相除法
- 辗转相除法
- 辗转相除法
- 辗转相除法
- 证明辗转相除法
- 辗转相除法
- java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
- 深度优先搜索(dfs)
- vue.js中文社区Demo:vue全家桶,muse-ui
- 产品经理理解
- vue中v-text,v-html, v-model, {{}}之间的异同
- 辗转相除法
- CCF 201503-4 网络延时(树的直径,两次BFS)
- 在es6环境搭建中gulp安装遇到的问题
- kafka中的offset
- Spring框架中IntrospectorCleanupListener的作用
- Activity生命周期
- picture upload view and html2canvas
- 第一次当面试官
- Android消息传递机制总结