题目:
求两个数的最小公约数和最小公倍数
思路:
求最大公约数: 欧几里得在其《几何原本》中提出的欧几里得算法,有称辗转相除法,
具体做法是如果q和r分别是m除以n的商及玉树,m=nq+r,那么m和n的最大公约数等于n和
r的最大公约数
具体做法是如果q和r分别是m除以n的商及玉树,m=nq+r,那么m和n的最大公约数等于n和
r的最大公约数
求最小公倍数:最小公倍数等于a*b/他们的最大公约数
代码实现:
package com.chenyu.zuo.other;
/*** @author Think*/
public class Gcd {/**欧几里得在其《几何原本》中提出的欧几里得算法,有称辗转相除法,* 具体做法是如果q和r分别是m除以n的商及玉树,m=nq+r,那么m和n的最大公约数等于n和* r的最大公约数,下面是递归实现* @param a* @param b* @return*/public int gcd1(int a,int b){return b==0?a:gcd1(b,a%b);}/*** 不用递归实现* @param a* @param b* @return*/public int gcd2(int a,int b){int temp=0;while(b!=0){temp=a%b;a=b;b=temp;}