Vòng for...do
program bai_giai;
uses crt;
var n,i:byte;
t:int64;
begin
clrscr;
write('Nhap n: '); readln(n);
t:=1;
for i:=1 to n do t:=t*i;
write(t);
readln;
end.
Vòng while...do
program bai_giai;
uses crt;
var n,i:byte;
t:int64;
begin
clrscr;
write('Nhap n: '); readln(n);
t:=1; i:=1;
while i<=n do
begin
t:=t*i;
i:=i+1;
end;
write(t);
readln;
end.
Kết quả thực sự rất lớn, cho dù là integer, longint lớn hơn thường dùng cũng không đủ để có kết quả. Vì thế phải dùng kiểu dữ liệu lớn hơn trong kiểu số nguyên như là qword, int64,...