問題はこちら
問題概要
整数が与えられるので,以下の条件を満たす整数組の数を求めよ.- をの最大公約数とすると,以下が成立する.
- かつかつ
解説
またはのときは条件を満たさないので,以下とする.各に対して,条件を満たすようなの数を求める.つまり,となるようなのうち,がともにより大きいの倍数かつであるようなものの数を求めたい.
となるようなの数はとなる.
ここで,はとなるなら,そうでないならとなる関数である.これは,による畳み込みとなっているので高速に求めることができる.
この値からのどちらかがに等しいようなの数を引く.となるの数はとなるが,これも約数のゼータ変換を用いて高速に計算でき,対称性からについても同じ値となる.ここから引きすぎたを足せば答えとなる.
以下の記事が参考になる.
による畳み込みやゼータ変換についての記事
qiita.com