思路: 容易知道,分解成素数的lcm肯定是最大的,因为假设分解成2个合数,设定x为他们的 最大公约数, 那么他们的最小公倍数就要减少x倍了 然后如果是素数之间的最小公倍数,那么就只是他们的乘积,同样的n分解,没有 除的肯定比有除的大, 因此可以得到结论 所以可以先晒一次素数,然后用这些素数填满那个n 这里填满也很容易想到是背包问题了,因为同一个素数可以用几次,所以就是一个 典型的多重背包了, 就是dp[j] = lcm(dp[j - k] , dp[k]); 然后还有一个问题,就是对于所有素数取…