思路:使用公式法求最小公倍数,最大公倍数 = 这两个数的乘积 / 最大公约数
import java.util.Scanner; /* * 求最小公倍数,最大公约数 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ String[] str = sc.nextLine().split(" "); int m = Integer.valueOf(str[1]); int n = Integer.valueOf(str[0]); // 求最大公约数,从1遍历大的,找出能最大的能整除这俩数的,即是最大公约数。(也可以使用欧几里得算法求最大公约数,详细见上一篇) int max = m > n ? m : n; int min = m > n ? n : m; int maxDivisor = 1; for (int i = 1; i <= max; i++) { if(max % i ==0 && min % i == 0){ if(maxDivisor < i){ maxDivisor = i; } } } // 最大公倍数 = 这两个数的乘积 / 最大公约数 int minMultiple = n * m / maxDivisor; System.out.println(minMultiple); } } }
参考链接:https://baike.baidu.com/item/%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0/6192375?fr=aladdin
参考链接:https://baike.baidu.com/item/%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0/6192375?fr=aladdin