program hama; {khai báo chương trình} uses crt; {khai báo thư viện} var n, s, i: integer; {khai báo biến} begin {bắt đầu chương trình} clrscr; {xóa màn hình} write(‘Nhap n = ‘); readln(n); {yêu cầu và nhập giá trị biến n} s:=0; {gán s = 0} i:=1; {gán i = 1} while s<n do {kiểm tra điều kiện s<n hay không} begin {nếu nhỏ hơn thì bắt đầu đoạn chương trình dưới, không thì dừng lại} s:=s+i; {gán giá trị s = s+i} if s>=n then write(‘m = ‘, i-1); {nếu giá trị s ≥ n thì in giá trị trước giá trị i (i-1 là giá trị m) ra ngoài màn hình} i:=i+1; {tăng giá trị biến đếm để không mắc lỗi vòng lặp vô hạn} end; { kết thúc đoạn chương trình while – do} readln {thông báo kết quả ra màn hình} end. { kết thúc chương trình}
var m,n,i,s:longint;
begin
read(n);
m:=n;
s:=n+1;
while s>n do
begin
s:=0;
m:=m-1;
for i:=1 to m do s:=s+i;
end;
write(m);
readln;
end.
program hama; {khai báo chương trình}
uses crt; {khai báo thư viện}
var n, s, i: integer; {khai báo biến}
begin {bắt đầu chương trình}
clrscr; {xóa màn hình}
write(‘Nhap n = ‘); readln(n); {yêu cầu và nhập giá trị biến n}
s:=0; {gán s = 0}
i:=1; {gán i = 1}
while s<n do {kiểm tra điều kiện s<n hay không}
begin {nếu nhỏ hơn thì bắt đầu đoạn chương trình dưới, không thì dừng lại}
s:=s+i; {gán giá trị s = s+i}
if s>=n then write(‘m = ‘, i-1); {nếu giá trị s ≥ n thì in giá trị trước giá trị i (i-1 là giá trị m) ra ngoài màn hình}
i:=i+1; {tăng giá trị biến đếm để không mắc lỗi vòng lặp vô hạn}
end; { kết thúc đoạn chương trình while – do}
readln {thông báo kết quả ra màn hình}
end. { kết thúc chương trình}