uses crt;
type long=0..1000000000;
var a,b: ^long;
function fact (n: long): long;
begin
if n=0 then fact:=1
else if n>0 then fact:=n*fact(n-1);
end;
begin
clrscr;
new(a);
new(b);
write('введите значение параметра a: ');
readln(a^);
writeln;
write('цифры числа ',a^,'!: ');
b^:=a^; {переменная b используется для хранения значения переменной a, т.к. она изменится}
a^:=fact(a^);
while a^ <> 0 do
begin
write(a^ mod 10 : 2);
a^:=a^ div 10;
end;
dispose(a);
dispose(b);
end.