Код

procedure TForm1.Button1Click(Sender: TObject);
var s,n:integer;
type  sm=set of 0..99;

procedure rek(b,c:sm; i:integer);
var x:integer;
begin
   for x:=0 to n-1 do
      if (x in b)and(((x-i+n)mod n)in c) then
         begin
            if i<n-1 then rek(b-[x],c-[(x-i+n)mod n],i+1) else s:=s+1;
         end;
end;

begin
   s:=0;
   n:=strtoint(edit1.Text);
   rek([0..n-1],[0..n-1],0);
   label2.Caption:=inttostr(s);
end;

Для четных n искомое будет всегда равно 0.