Program factors;
var
num, sum : word;
st : string;
j : byte;
function fact(a : byte) : word;
var
res : word;
i : byte;
begin
res:=1;
for i:=1 to a do
res := res*i;
writeln(a, '!=', res);
fact := res;
end;
function vl(a : char) : byte;
var
res : byte;
begin
val(a, res);
vl := res;
end;
begin
write('Введите число: ');
readln (num);
str(num, st);
sum:=0;
for j:=1 to length(st) do
sum := sum + fact(vl(st[j]));
writeln('Сумма факториалов цифр числа равна: ', sum);
end.
Тестовый прогон программы:
Введите число: 125
1!=1
2!=2
5!=120
Сумма факториалов цифр числа равна: 123