public class 最大公约数和最小公倍数 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int a = sc.nextInt(); int b = sc.nextInt(); int gcd1 = gcd1(a, b); System.out.println("欧几里得:" + gcd1); int gcd2 = gcd2(a, b); System.out.println("递归;" + gcd2); int lcm = lcm(a, b); System.out.println("最小公倍数:"+lcm); } } public static int gcd1(int a, int b) { /* 欧几里得辗转法 if a =24,b=15; gcd = (b,a%b); = (15,9); = (9,6); = (6,3); = (3,3); = (3,0); */ while (b > 0) { int temp = a % b; a = b; b = temp; } return a; } public static int gcd2(int a, int b) { // 递归 return b == 0 ? a : gcd2(b, a % b); } // 最小公倍数 public static int lcm(int a, int b) { // 最小公倍数公式lcm(a,b) = a * b / gcd(a,b); int res = 0; return res = a * b / gcd1(a, b); } }
Java求最大公约数和最小公倍数
最新推荐文章于 2024-07-22 14:15:06 发布