Numbers can be regarded as the product of their factors.
For example, 8 = 2 x 2 x 2 = 2 x 4.
Given an integer n, return all possible combinations of its factors. You may return the answer in any order.
Note that the factors should be in the range [2, n - 1].
Example 1:
Input: n = 1
Output: []
Example 2:
Input: n = 12
Output: [[2,6],[3,4],[2,2,3]]
Example 3:
Input: n = 37
Output: []
Constraints:
1 <= n <= 107
Solutions
Solution 1
Thinking
Factorizations of \(n\) with at least two factors should be generated in nondecreasing order to avoid permutations. Enumerate factors from the current minimum \(i\) up to \(\sqrt{n}\).
\(dfs(n,i)\) records the chosen factors plus leftover \(n\), then tries each \(j\ge i\) that divides \(n\) and recurses on \(n/j\).