P1445 [Violet] 樱花 - 数论

题意

给定 \(n\),求方程 \(\dfrac{1}{x}+\dfrac{1}{y}=\dfrac{1}{n!}\) 的正整数解个数,\(1\le n\le 10^6\)。

题解

\[\begin{aligned} \dfrac{1}{y}&=\dfrac{1}{n!}-\dfrac{1}{x}=\dfrac{x-n!}{xn!} \\ y&=\dfrac{xn!}{x-n!}\\&=\dfrac{n!(x-n!)+(n!)^2}{x-n!}\\&=n!+\dfrac{(n!)^2}{x-n!} \end{aligned} \]

由于对于每个 \(x\),至多有一个 \(y\) 与其组成一组解,所以答案就是 \(d((n!)^2)\),\(d\) 是约数个数函数。

由于在 \(n!\) 中质因子 \(p\) 的个数是 \(\sum\limits_{k>0} \lfloor \dfrac{n}{p^k}\rfloor\),所以答案可以通过线性筛出质数,在 \(\mathcal{O}(n\log\log n)\) 的时间复杂度内求出。

上一篇:平衡树(三)——FHQ Treap


下一篇:使用JavaScript TV4验证JSON方案