java求最大公约数和最小公倍数(递归求解)

import java.util.Scanner;
/*
 * 标题:求最大公约数和最小公倍数
 * 算法思想:最大公约数和最小公倍数(递归实现,效率较高)
 * 最小公倍数:gcd(a,b)欧几里得定理(辗转相除法)
 * 最大公约数:a和b分别与最小公倍数的商的乘积,化简后为 a*b/gcd(a,b)
 */
public class Main {
	
	static Scanner sc = new Scanner(System.in);
	static int x = sc.nextInt();
	static int y = sc.nextInt();
	static int a,b;
	public static void main(String[] args) {
		a = gcd(x,y);
		b = lcm(x,y);
		System.out.println("最小公倍数:"+a);
		System.out.println("最大公约数:"+b);
	}
	public static int gcd(int a,int b) {
		return b==0?a:gcd(b,a%b); 
	}
	public static int lcm(int a,int b) {
		return a*b/gcd(a,b);
	}
}

猜你喜欢

转载自blog.csdn.net/qq262593421/article/details/88707561