java实现两个正整数之间的最大公约数和最小公倍数
核心原理:欧几里得算法
代码如下
package demo; import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); System.out.println("最大公约数为:" + gcd(a, b)); System.out.println("最小公倍数为:" + gcdMinNum(a, b)); } private static int gcd(int p, int q) { if (q == 0) { return p; } int r = p % q; return gcd(q, r); } private static int gcdMinNum(int p, int q) { return p * q / gcd(p, q); } }
先求两数的最大公约数,则最大公倍数皆为两数成绩除以最大公约数。