PROGRAM FAKTORIELLE(OUTPUT); CONST NMAX=65; ZMAX=50; VAR A: ARRAY[0..NMAX] OF INTEGER; U,J,K,I: INTEGER; C: INTEGER; BEGIN FOR I:=0 TO NMAX DO A[I]:=0; A[NMAX]:=1; FOR J:=1 TO ZMAX DO BEGIN U:=0; FOR I:=NMAX DOWNTO 0 DO BEGIN C:=A[I]*J; A[I]:=(C+U) MOD 10; U:=(C+U) DIV 10; END; WRITELN; WRITE(J:3," FAK = "); K:=0; WHILE A[K]=0 DO BEGIN K:=K+1; WRITE(" ") END; FOR K:=K TO NMAX DO WRITE(A[K]:1); END END.