#include using namespace std; int a[100]; int idx = 1; int c = 0; void part(int i, int n) { if (i > n) return; if (i == n) { cout << idx++ << ": "; for (int j = 0; j < c; j++) cout << a[j] << " "; cout << n << endl; } else { a[c++] = i; part(i, n - i); c--; part(i + 1, n); } } int main() { part(1, 10); // partition-и на 10 return 0; }