A number as it's prime number parts

前端 未结 3 2061
隐瞒了意图╮
隐瞒了意图╮ 2020-12-19 12:23

I have to print the number of ways you can represent a given number as it\'s prime number parts.

Let me clarify: Let\'s say I have been given this number 7. Now, fir

3条回答
  •  遥遥无期
    2020-12-19 13:15

    The concept you are searching for is the "prime partitions" of a number. S partition of a number is a way of adding numbers to reach the target; for instance, 1+1+2+3 is a partition of 7. If all the addends are prime, then the partition is a prime partition.

    I think your example is wrong. The number 7 is usually considered to have 3 prime partitions: 2+2+3, 2+5, and 7. The order of the addends doesn't matter. In number theory the function that counts prime partitions is kappa, so we would say kappa(7) = 3.

    The usual calculation of kappa is done in two parts. The first part is a function to compute the sum of the prime factors of a number; for instance, 42=2·3·7, so sopf(42)=12. Note that sopf(12)=5 because the sum is over only the distinct factors of a number, so even though 12=2·2·3, only one 2 is included in the calculation of the sum.

    Given sopf, there is a lengthy formula to calculate kappa; I'll give it in LaTeX form, since I don't know how to enter it here: \kappa(n) = \frac{1}{n}\left(\mathrm{sopf}(n) + \sum_{j=1}^{n-1} \mathrm{sopf}(j) \cdot \kappa(n-j)\right).

    If you actually want a list of the partitions, instead of just the count, there is a dynamic programming solution that @corsiKa pointed out.

    I discuss prime partitions in more detail at my blog, including source code to produce both the count and the list.

提交回复
热议问题