import java.util.Scanner;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList; 
import java.lang.Math;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static int MaxGongYin2(int a,int b){
        int x = 1;
        for(int i=100;i>=1;i--){
            if(a%i==0 && b%i==0){
                x = i;
                break;
            }
        }
        return (a*b)/(x);
    }

    public static int MaxGongYin3(int a,int b,int c){
        int tmp = MaxGongYin2(a,b);
        return MaxGongYin2(tmp,c);
    }

    public static void main(String[] args) {
        String[] inputS = new Scanner(System.in).nextLine().trim().split(" ");
        // 注意 hasNext 和 hasNextLine 的区别
        ArrayList<Integer> arr = new ArrayList<>();
        for(int i=0;i<5;i++){
            int num = Integer.parseInt(inputS[i]);
            arr.add(num);
        }
        Collections.sort(arr);
        int res = Integer.MAX_VALUE;
       

        //1.穷举
        for(int i=0;i<arr.size();i++){
            for(int j=i+1;j<arr.size();j++){
                for(int k=j+1;k<arr.size();k++){
                    res = Math.min(res,MaxGongYin3(arr.get(i),arr.get(j),arr.get(k)));
                }
            }
        }

        //2.找特例
        for(int i=2;i<arr.size();i++){
            int divideNum = 0;
            for(int j=0;j<i;j++){
                if(arr.get(i)%arr.get(j)==0) {
                    divideNum+=1;
                }
                if(divideNum>=2) {
                    res = res = Math.min(res,arr.get(i));
                    break;
                }
            }
        }
        System.out.println(res);
    }
}

别看代码长,核心思路很短

需要知道的数学知识:两个数a和b的最小公倍数 = a*b/a和b的最大公因数

而三个数a,b,c的最小公倍数其实就是:a和b的最小公倍数tmp先求出来,再求tmp和c的最小公倍数,等于是求2次2个数的最小公倍数

所以才有了MaxGongYin2和MaxGongYin3两个函数,看起来多实际上很少

主函数Main这边就是先穷举,找到三个数情况下的最小公倍数,然后再去找特例,特例情况就是存在一个数能够整除其他2个数