Given an integer n
, break it into the sum of k
positive integers, where k >= 2
, and maximize the product of those integers.
Return the maximum product you can get.
Example 1:
Input: n = 2
Output: 1
Explanation: 2 = 1 + 1, 1 × 1 = 1.
Example 2:
Input: n = 10
Output: 36
Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.
Constraints:
-
2 <= n <= 58
SOLUTION:
class Solution:
def integerBreak(self, n: int) -> int:
maxp = float('-inf')
for k in range(2, n + 1):
val = n // k
p = (val ** (k - (n % k))) * ((val + 1) ** (n % k))
maxp = max(p, maxp)
return maxp
Top comments (0)