div2by1というアルゴリズムがある -> https://gmplib.org/~tege/division-paper.pdf これはBarrett reductionやMontgomery乗算と違い、 (k, k) -> 2k-bitの乗算器でk-bitの剰余算ができる(Barrett reductionは(2k, 2k) -> 4k-bitの乗算器を必要とする) modが偶数でも動作する(Montgomery乗算はmodが奇数の必要がある) という二つの性質を持つ。今回は次の6種類のプログラムを実装し、$(8 \times 10^{7})! \bmod 998244353$を計算して…