P3768 简单的数学题
Description
\[\left(\sum_{i = 1}^{n} \sum_{j = 1}^n ij \gcd(i, j) \right) \bmod p
\]
- 对于 \(100\%\) 的数据,\(n\le 10^{10}, 5 \times 10^8 \le p \le 1.1 \times 10^9\) 且 \(p\in \mathbb{P}\)。
Solution
\[\begin{aligned}
\sum_{i = 1}^n \sum_{j = 1}^n ij \gcd(i, j)
& = \sum_{i = 1}^n \sum_{j = 1}^n ij \sum_{d\mid \gcd(i, j)} \varphi(d) \\
& = \sum_{d = 1}^n \varphi(d) \sum_{i = 1}^n i [d\mid i] \sum_{j = 1}^n j [d\mid j] \\
& = \sum_{d = 1}^n \varphi(d) \sum_{i = 1}^{\left\lfloor\frac{n}{d}\right\rfloor} i d \sum_{j = 1}^{\left\lfloor\frac{n}{d}\right\rfloor} j d \\
& = \sum_{d = 1}^n \varphi(d) d^2 S\left(\left\lfloor\dfrac{n}{d}\right\rfloor\right)^2
\end{aligned}
\]
杜教筛 \(\varphi(d) \cdot d^2\) 即可。
杜教筛时间复杂度为 \(\Omicron(n^{\frac{2}{3}})\),整除分块时间复杂度为 \(\Omicron(\sqrt{n})\),总时间复杂度为 \(\Omicron(n^{\frac{2}{3}})\)。
Code
// 18 = 9 + 9 = 18.
#include
#include
#include