Here's my python golf entry:
>>> def foo(n):
... def lower(i): return 1 + (i*(i-1)) // 2
... def upper(i): return i + lower(i)
... import math
... x = (math.sqrt(1 + 8*n) - 1) // 2
... return [list(range(lower(i), upper(i))) for i in range(1, x+1)]
...
>>>
>>> for i in [1,3,6,10,15]:
... print i, foo(i)
...
1 [[1]]
3 [[1], [2, 3]]
6 [[1], [2, 3], [4, 5, 6]]
10 [[1], [2, 3], [4, 5, 6], [7, 8, 9, 10]]
15 [[1], [2, 3], [4, 5, 6], [7, 8, 9, 10], [11, 12, 13, 14, 15]]
>>>
The calculation of x relies on solution of the quadratic equation with positive roots for
0 = y*y + y - 2*n