Var a:array[1..1000] of integer; n,k,t:integer; BEGIN Readln(n); k:=2; While n>=k do begin a[k]:=k; n:=n-k; k:=k+1; end; K:=k-1;t:=k; while n>0 do begin inc(a[k]); dec(k); dec(n); end; a[t]:=a[t]+a[1]; for k:=2 to t do write(a[k], ' '); readln END. { - Nhập số N. Chọn số K lớn nhất mà tổng các số từ 2 đến K <= N. D=N-K. - Tăng D số bên phải lên 1. Nếu D=K thì tăng số thứ K lên 1 tiếp. }