Em mới đào được bài này nè: Phân tích số N thành tổng của các số tự nhiên liên tiếp,liệt kê tất cả các cách có thể có.
VD: N=9 thì có 2 cách
2+3+4
4+5
VD: N=9 thì có 2 cách
2+3+4
4+5
uses crt; var n:longint; a, i,m,dem,max:integer; begin clrscr; Write('Nhap N = ');readln(n); max:=trunc(sqrt(N*8+1)+1) div 2; dem:=0; For i:=2 to max-1 do If ((N-i*(i-1)div 2) mod i = 0) then begin A:=(N-i*(i-1)div 2) div i; inc(dem); Writeln('Cach thu ',dem); For m:=a to a+i-1 do write(' ',m); writeln; end; readln; end.
uses crt; var n:longint; a, i,m,dem,max:integer; begin clrscr; Write('Nhap N = ');readln(n); max:=trunc(sqrt(N*8+1)+1) div 2; dem:=0; For i:=2 to max-1 do If ((N-i*(i-1)div 2) mod i = 0) then begin A:=(N-i*(i-1)div 2) div i; inc(dem); Writeln('Cach thu ',dem); For m:=a to a+i-1 do write(' ',m); writeln; end; readln; end.
Comment