空席の数を とする.
学生が隣りあわないように並べる組み合わせの数は, まず空席を並べ, 次に学生を空席の間に(両端含む)にひとりずつ入れるようにすればいいので,
s.t.
となる. のときは の中に の倍数が含まれるので答えは 0 となる.
とすると, 求める答えは
となり, のときは答えは 0 である. そうでないときは,
となる. 剰余の法は素数なので逆元をが求めることができる.
また, であるが, これをそのまま計算すると間に合わないので, 程度ごとにあらかじめ階乗を計算しておき, ソースにその値を埋め込んでおく.