第二题直接暴力dp import math nums = [1,1,1,1,1,30] max_num = max(nums) dp = [1000000]*(max_num+1) dp[1] = 0 for i in range(2,max_num+1):     for j in range(1,math.floor(math.sqrt(i))+1):         if i % j ==0:             x = i//j             dp[i] = min(dp[j]+dp[x]+1,dp[i])     dp[i] = min(dp[i], dp[i-1]+1) res = 0 for num in nums:     res += dp[num] print(dp,res)