36 lines
871 B
Text
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;
|