求两个数的最大公约数
来源:互联网 发布:数据分析培训 编辑:程序博客网 时间:2024/06/05 00:58
求两个数的最大公约数
一.辗转相除法
辗转相除法,又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至公元前300年前。
那么原理是什么?
即:较大的数与较小的树进行取模运算,得到a;然后让较小的数在与a进行取模运算,得到b;.......n(即每次让较小的数与n取模)。直至n为0时,这时较小的数就是最大公约数,停止运算。
举例说明
程序实现
public class gongyue{private int yueshu=1;private int gcd(int a,int b){if(a%b==0)return b;elsereturn gcd(b,a%b);}public int maincode(int a,int b){if(a>b)yueshu=gcd(a,b);elseyueshu=gcd(b,a);System.out.println(yueshu);return 0;}public static void main(String[] args) {gongyue tgcd=new gongyue();tgcd.maincode(240,80);}}
二、方法2(三元表达式-and-for循环)
public class gongyue{/*@param args*/ public static void main(String[] args) { int a = 1112; int b = 208; int e = 546800; int f = 256400; int c = 1; int min = (a < b ? a : b); int min2 = (e < f ? e : f); for(int i = 1; i <= min; i++){ if(a % i == 0 && b % i == 0) c = i; } System.out.println(c); for(int i = min2; i >= 1; i--){ if(e % i == 0 && f % i == 0){ c = i; break; } } System.out.println(c); } }
0 0
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 异步Asynctask的使用
- 性能调优-java-等等
- UVa 1001
- poj 2516 Minimum(SPFA解决最小费用最大流)
- vim简易教程--常用命令
- 求两个数的最大公约数
- 第一篇boke
- Form表单提交 get与post区别
- Java 几个基础问题
- 《DNF掌游宝》体验报告
- ([\u@\h\W]\# busybox 在制作根文件系统的处理方法
- Linux部分命令详解
- Leetcode #7 Reverse Integer
- 游戏服务器epoll网络模型简析