用欧几里得定理求最大公约数和最小公倍数
求最小公约数:
原理:GCD(a,b) = GCD(a,a%b) (a>b)
一直递归下去直到a%b=0 时返回b。
最大公倍数:
原理:最大公倍数= a*b/最小公约数
package demo;
import java.util.Scanner;
public class Main欧几里得原理最大公约数最小公倍数 {
/*求最大公约数的新方法:欧几里得原理
* GCD(a,b) = GCD(a,a%b)*/
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
int a = scan.nextInt();
int b = scan.nextInt();
if(a<b){
int tem =a;
a= b;
b=tem;
}
int res = ff(a,b);
System.out.println(res);
/*最大公倍数= A*B/最大公约数 */
System.out.println(a*b/res);
}
private static int ff(int a, int b) {
if(a%b==0){
return b;
}else{
return ff(a,a%b);
}
}
}