IntegerPartitions[n, {3, 10}, Prime ~Array~ 10]
В Mathematica это даст список всех способов получить n в виде суммы от трех до десяти первых десяти простых чисел, позволяя дублировать по мере необходимости.
Как я могу эффективно найти суммы, равные n, позволяя каждому элементу использоваться только один раз?
Использование первых десяти простых чисел является лишь игрушечным примером. Я ищу решение, которое справедливо для произвольных аргументов. В реальных случаях генерация всех возможных сумм, даже с использованием полиномиальных коэффициентов, занимает слишком много памяти.
Я забыл включить, что я использую Mathematica 7.