java欧几里得算法求最大公约数
来源:互联网 发布:淘宝禁止出售有毒化学 编辑:程序博客网 时间:2024/05/21 07:10
public class Euclid {/** * @param args */public static void main(String[] args) {System.out.println(euclid(100, 10));System.out.println(euclid(454, 24));System.out.println(euclid(1020, 104));System.out.println(euclid(1020, 105));System.out.println(euclid(1024, 644));System.out.println(euclid(1111111, 1234567));System.out.println(euclid(100, 1203000));}public static int euclid(int first, int second) {if (first <= 0 || second <= 0) {throw new IllegalArgumentException();}if(first < second){int temp = second;second = first;first =temp;}int temp = first % second;if (temp == 0) {return second;} else {return euclid(second, temp);}}}
欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。其计算原理依赖于下面的定理:
定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0)
证明:a可以表示成a = kb + r,则r = a mod b
假设d是a,b的一个公约数,则有
d|a,d|b,而r = a - kb,因此d|r
因此d也是(b,a mod b)的公约数
因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证
- java欧几里得算法求最大公约数
- 欧几里得算法求最大公约数
- 欧几里得算法求最大公约数
- 欧几里得算法 求最大公约数
- 用欧几里得算法求最大公约数
- 求最大公约数(欧几里得算法)
- 求最大公约数(欧几里得算法)
- 欧几里得算法(求最大公约数)
- 用java实现欧几里得算法求两个数字的最大公约数
- 【经典算法】:欧几里得算法求最大公约数
- 求最大公约数算法(欧几里得算法)的实现!!!
- 欧几里得算法 最大公约数(Java)
- 欧几里得算法——求最大公约数
- 欧几里得算法求最大公约数(九度刷题)
- 筛法求素数,欧几里得算法求最大公约数
- 【递归经典题目】欧几里得算法求最大公约数
- 欧几里得算法 --- 辗转相除法求最大公约数
- HDOJ 最小公倍数(欧几里得算法求最大公约数)
- ACM之打印方正
- 异或双向链表
- eclipse插件findbugs的检查规则的导入和导出
- ACM之数组输出
- Android系统自带图标
- java欧几里得算法求最大公约数
- ACM之数组排序
- 关于realloc的调整内存方式
- java 中的编码与解码
- 用eclispe 启动tomcat 一直显示 starting tomcat
- 在Windows上获取进程的可执行文件路径
- ACM之格式输出
- POJ1905--Expanding Rods
- ACM之字符串反转