题目描述
给出正整数$n$和$k$,计算$f(n, k)=k \text{ mod } 1 + k \text{ mod } 2 + k \text{ mod } 3 + \cdots + k \text{ mod } n$的值
其中$k \text{ mod } i$表示$k$除以$i$的余数
$n,k \le 10^9$
题解
$$
\begin{aligned}
f(n,k)
&=\sum_{i=1}^{n}k \text{ mod }i \\
&=\sum_{i=1}^{n}k - \lfloor \frac{k}{i} \rfloor i \\
&=nk - \sum_{i=1}^{n} i \lfloor \frac{k}{i} \rfloor \\
\end{aligned}
$$
显然$\lfloor \frac{k}{i} \rfloor$的取值只有$O(\sqrt k)$种,数论分块即可
代码
1 |
|