首先通过一个小技巧保证被核心方法处理的参数中a一定是大于b的 接着进行辗转相除,使用递归进行实现,主要的思想是为了如果a和b中都有一个数i,那么i只用出现一次,所以就直接去求a/i,b/i的最大公倍数,并且将结果乘以i,那么最后的结果就是a,b的最大公倍数

import java.util.Scanner;

public class Main{
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(), b = sc.nextInt();
        int ans = solution(a, b);
        System.out.println(ans);
    }
    
    public static int solution(int a, int b){
        if(a < b){
            return solution(b, a);
        }
        // 肯定有 a >= b
        if(a % b == 0){
            return a;
        }
        for(int i = 2; i < b; i++){
            if(a % i == 0 && b % i == 0){
                return i * solution(a/i, b/i); 
            }
        }
        return a * b;
    }
    
}