RosettaCodeData/Task/Left-factorials/Seed7/left-factorials.seed7
2023-07-01 13:44:08 -04:00

36 lines
871 B
Text

$ include "seed7_05.s7i";
include "bigint.s7i";
const func bigInteger: leftFact (in integer: n) is func
result
var bigInteger: leftFact is 0_;
local
var bigInteger: factorial is 1_;
var integer: i is 0;
begin
for i range 1 to n do
leftFact +:= factorial;
factorial *:= bigInteger conv i;
end for;
end func;
const proc: main is func
local
var integer: n is 0;
begin
writeln("First 11 left factorials:");
for n range 0 to 10 do
write(" " <& leftFact(n));
end for;
writeln;
writeln("20 through 110 (inclusive) by tens:");
for n range 20 to 110 step 10 do
writeln(leftFact(n));
end for;
writeln;
writeln("Digits in 1,000 through 10,000 by thousands:");
for n range 1000 to 10000 step 1000 do
writeln(length(str(leftFact(n))));
end for;
writeln;
end func;