:сделать функцию определения того, что данное число является факториалом: function reversef (f: integer; var n: integer): boolean (возвращает true, если f – факториал, n – число, факториалом которого является f.
Function reversef(f:integer; var n:integer):boolean; var i,k:integer; p:longint; begin if f=1 then begin reversef:=true; n:=1 end else begin k:=2; repeat p:=1; for i:=2 to k do p:=p*i; if p<f then Inc(k) until p>=f; if p=f then begin reversef:=true; n:=k end else begin reversef:=false; n:=-1 end end end;
var
i,k:integer;
p:longint;
begin
if f=1 then begin reversef:=true; n:=1 end
else begin
k:=2;
repeat
p:=1;
for i:=2 to k do p:=p*i;
if p<f then Inc(k)
until p>=f;
if p=f then begin reversef:=true; n:=k end
else begin reversef:=false; n:=-1 end
end
end;