动态规划做法
public class SenvenB {
public static long f(int m,int n){
long i = m;
long j = n;
while(j != 0){
long tmp = j;
j = i % j;
i = tmp;
}
return (m * n) / i;
}
public static void main(String[] args){
long[] dp = new long[2022];
Arrays.fill(dp,MAX_VALUE);
dp[0] = 0;
dp[1] = 0;
for(int i = 1;i <= 2021;i++){
for(int j = Math.max(i-21,1);j < i;j++){
dp[i] = Math.min(dp[i],dp[j] + f(i,j));
}
}
System.out.println(dp[2021]);
}
}