欧几里得算法
2016-01-24 23:40
253 查看
问题:求整数a和b的最大公约数
算法:欧几里得算法(又称辗转相除法),gcd(a,b) = gcd(a,a%b)
证明:
假设 a = b*q + r,p是a和b的一个公约数,那么
==> a = p*m
==> b = p*n
==> p*m = p*n*q +r
==> r = p*m - p*n*q
= p(m - n*q)
==> p也是r的公约数
同理,设t是b和r的公约数,也可得出t是a的公约数
==> (a,b)和(b,r)具有相同的公约数
==> gcd(a,b) = gcd(a,a%b)
算法:欧几里得算法(又称辗转相除法),gcd(a,b) = gcd(a,a%b)
证明:
假设 a = b*q + r,p是a和b的一个公约数,那么
==> a = p*m
==> b = p*n
==> p*m = p*n*q +r
==> r = p*m - p*n*q
= p(m - n*q)
==> p也是r的公约数
同理,设t是b和r的公约数,也可得出t是a的公约数
==> (a,b)和(b,r)具有相同的公约数
==> gcd(a,b) = gcd(a,a%b)
相关文章推荐
- Linux下的Nginx的安装详解
- 七年一轮回
- Unity学习之路(一)太空大战类游戏制作3
- 技术学习过程
- JAVA判断字符串相等
- Intellij idea创建javaWeb以及Servlet简单实现
- Elastic-2.1.1学习笔记(一)基础入门
- Codeforces 617EXOR and Favorite Number
- android mvp快速开发框架介绍(dileber使用之小工具使用)
- 表单标签2
- 新浪微博Android-SDK分享网页功能
- 命令行向Php传递参数的两种方式
- [UVA 11402]Ahoy, Pirates![线段树]
- jxl处理合并单元格时的一个问题,需注意
- 关于UIViewController self.title在IOS7中默认是黑色且字体稍小的解决办法
- Codeforces Round #330 (Div. 2) C. Warrior and Archer(贪心博弈)
- 设计模式六大原则(2):里氏替换原则
- List<T>的各种排序方法
- C#中Form的Paint事件响应方法与重载虚方法OnPaint()的区别
- hdoj5505GT and numbers【gcd】