Типа double должно хватить под это все дело.
В целочисленные типы такое число, увы, не влезет.
var
i:integer;
result:double;
begin
result := 1;
for i := 2 to 20 do
result := result * i;
writeln('Результат = ', result);
end.
// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018
Range(1,20).Aggregate(biginteger(1),(p,x) -> p*x).Println;
ответ = 2432902008176640000
Типа double должно хватить под это все дело.
В целочисленные типы такое число, увы, не влезет.
var
i:integer;
result:double;
begin
result := 1;
for i := 2 to 20 do
result := result * i;
writeln('Результат = ', result);
end.
// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018
begin
Range(1,20).Aggregate(biginteger(1),(p,x) -> p*x).Println;
end.
ответ = 2432902008176640000