':type n: int
:rtype: int'

def integerBreak(self, n):

    if (n < 4):
        return (n - 1)
    res = [0, 1, 2, 3]
    for i in xrange(4, (n + 1)):
        res[(i % 4)] = max((res[((i - 2) % 4)] * 2), (res[((i - 3) % 4)] * 3))
    return res[(n % 4)]
