问题:给定一个自然数N,求n1,n2……nx,使N = n1 + n2 + …… + nx,并使n1*n2……*nx最大。
解法:将N分解为若干个2和3,且2的个数最多为两个。
具体来说:若N = 3*k,则分解为k个3;
若N = 3*k + 1,则分解为(k - 1)个3和两个2;
若N = 3*k + 2,则分解为k个3和一个2。
证明:
不妨设n1<=n2<=……<=nx,且此时n1*n2……*nx最大
(1).若n1=1,则n1*n2……*nx = n2*n3……*nx < (n1 + n2)*n3*……*nx,这与n1*n2……*nx最大矛盾,故n1>=2,同理,n1、n2……nx都满足大于等于2。
(2)若n1>4,则n1 = (n1 - 2) + 2,此时(n1 - 2)*2 > n1,n1*n2……*nx < (n1 -2)*2*n2*……*nx,这又与n1*n2……*nx最大矛盾,故n1<=4,同理n1、n2……nx都满足小于等于4。
若n1 = 4,则n1 = 2 + 2,其积不变,故可认为n1、n2……nx不含4。
综上所述,2<=n1,n2,n3……nx<=3。
若2的个数超过两个,即至少有3个2,可取其中3个2换成2个3,由于3*3 > 2*2*2,因此超过两个2的分解均不为最大,即最大积分解中最多有两个2.
证毕。
参考资料:《自然数的一种有趣的“最大积” 分解》,作者:马卫民