对于数字N f(N)= N的分区中的部分总数等于。
例如 如果给定的数字是4,则相等的分区将是:
{1,1,1,1} - >总数= 4
{2,2} - >总数= 2
{4} - >总数= 1
因此,分区中4个等分的部分总数为7。
我在练习面试问题中得到了这个问题。想知道如何使用编程来解决这个问题。
答案 0 :(得分:0)
这个问题基本上要求数字N的divisor sum function,因为N的每个不同的除数d可用于创建N的不同分区为相等的部分(值d的n / d部分,或d价值N / d的部分,无论你喜欢哪个)。由于N的任何除数d的N / d只是另一个除数,你可以简单地将除数自己求和而不是求和N / d。
因此,您需要选择计算给定数N的除数的众多方法之一。例如,RosettaCode具有a section on computing the proper divisors of a number,这几乎是您所需要的(您只需将N加到除数中)因为适当的除数不包括N本身)。一旦你必须设置除数,你就可以计算出所需的结果(或者计算每个除数的总和,这样就不需要存储除数)。