No.435

No.434 の制限が厳しいバージョンである.

基本的なやり方は No.434 と変わらない.

まずは の余りをとる関数と考える. ただし, 余りが のときは と考える.

No.434 と同様に の計算は以下のように行う.

No.434 では , を素因数分解して素因数の数を数えていたが, 今回はこれでは間に合わない.

ここで, ある2数 があるとき, となる を求めることを考える. は素数ではないので, 逆元を計算する方法は使えない.

そこで, , ( で割り切れない) とおくと, と互いに素なので での逆元が存在し, この数を とすると,

となる.

このように の素因数だけ別立てで計算すれば, 逆元が使えるようになる.