DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

Integer Break

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)