program FactorialAndSumDigits;
function SumDigits(num: LongInt): Integer;
var
sum: Integer;
begin
sum := 0;
while num <> 0 do
begin
sum := sum + (num mod 10);
num := num div 10;
end;
SumDigits := sum;
end;
function Factorial(n: LongInt): LongInt;
begin
if (n = 1) or (n = 0) then
Factorial := 1
else
Factorial := n * Factorial(n - 1);
end;
var
number, result: LongInt;
begin
number := 9;
result := Factorial(number);
WriteLn('factorial = ', result);
WriteLn('sum digits = ', SumDigits(result));
end.
(*
run:
factorial = 362880
sum digits = 27
*)