Var
x, y: integer;
a, b: longint;
begin
a := 1; b := 1;
readln(x);
for y := 1 to 64 do
if (y mod 2 = 1) then
a *= x - y
else
b *= x - y;
writeln(a / b);
end.
Только вот какая оказия: не смог я подобрать число, при котором возвращается "нормальное" значение... Но программа похожа на правильную