公式

B - Product of Divisors 解説 by potato167


\(A\) を素因数分解することで、以下のように表現できます。

\(A=\prod_{i}^{n} p_{i}^{e_{i}}\)

ただし、 \(p_{1},p_{2},\dots p_{n}\) は互いに相異なる素数で、 \(e_{1},e_{2},\dots e_{n}\)\(1\) 以上の正整数です。

このような形で表せる整数 \(A\) の正の約数の個数は \(\prod_{i}^{n}(e_{i}+1)\) です。

ここで \(A^{B}=\prod_{i}^{n} p_{i}^{e_{i}B}\) より、 \(A^{B}\) の正の約数の個数は \(\prod_{i}^{n}(e_{i}B+1)\) です。

また、任意の正整数 \(X\) について、 \(X\) の正の約数の相乗平均は \(\sqrt{X}\) です。(\(X\) の正の約数の集合を \(S\) として、写像 \(f:S\rightarrow S ;f(a)=\frac{X}{a}\) が全単射であるため)

よって、\(A^{B}\) の正の約数の総積は \((A^{\frac{B}{2}})^{\prod_{i}^{n}(e_{i}B+1)}\) です。

以上より求めるべき値は \(\frac{B\prod_{i}^{n}(e_{i}B+1)}{2}\) の整数部分を\(P=998244353\) で割ったあまりです。

これは、分子を \(2P\) で割ったあまりを求めるか、\(P\) で割ったあまりと \(2\) で割ったあまりの両方を求めるかのいずれかをすることで求めることができます。

多くの場合で整数となりますが、 \(B\) が奇数かつ、 \(A\) が平方数のときに上記の値の分子が奇数になることに注意してください。

計算量は \(O(\sqrt{A})\) です。

投稿日時:
最終更新: