Этот интересный вопрос гораздо сложнее, чем кажется, и на него нет ответа. Вопрос можно разбить на 2 очень разных вопроса.
1 дано N, найдите список L из простых факторов N
2 учитывая L, рассчитать количество уникальных комбинаций
Все ответы, которые я вижу до сих пор, относятся к № 1 и не в состоянии упомянуть, что он не поддается огромным количествам. Для N среднего размера, даже для 64-битных чисел, это легко; для огромного N проблема факторинга может быть «навсегда». Шифрование с открытым ключом зависит от этого.
Вопрос № 2 требует дальнейшего обсуждения. Если L содержит только уникальные числа, это простой расчет с использованием формулы комбинации для выбора k объектов из n элементов. На самом деле, вам нужно суммировать результаты применения формулы при изменении k от 1 до sizeof (L). Однако L обычно будет содержать несколько вхождений нескольких простых чисел. Например, L = {2,2,2,3,3,5} является факторизацией N = 360. Теперь эта проблема довольно сложная!
Что касается # 2, то для данной коллекции C, содержащей k элементов, такой, что элемент a имеет «дубликаты», а элемент b имеет дубликаты b и т. Д., Сколько существует уникальных комбинаций от 1 до k-1 элементов? Например, {2}, {2,2}, {2,2,2}, {2,3}, {2,2,3,3} должны появляться каждый раз и только один раз, если L = {2,2 , 2,3,3,5}. Каждая такая уникальная подгруппа является уникальным делителем N путем умножения элементов в подгруппе.