标签: algorithm math
我基本上有一个问题归结为以下内容:给定一些(整数)数n,找到一组互质数,比如c =(c 1 ,c 2 < / sub>,...,c k ),每个小于n,满足:
1)所有c i 的乘积是最大的。
2)所有c i 的总和等于n。
这可能最终成为MathOverflow的一个问题,但有没有任何一种非暴力算法来做到这一点?
答案 0 :(得分:7)
你基本上是在寻找n的任何分区的最小最小公倍数。该产品被称为Landau的功能(见OEIS A000793)。这可以使用动态编程计算,请参阅here。