[Luogu] 余数求和

question:

$$sum_{i=1}^{n} k mod i$$
$$sum_{i=1}^{n} k - lfloor frac{k}{i} floor i$$
$$sum_{i=1}^{n}k - sum_{i=1}^{n}lfloor frac{k}{i} floor i$$

直接数论分块

#include <iostream>
int main() {
    int n, k; 
    long long Answer = 0;
    std:: cin >> n >> k;
    for(int i = 1, r; i <= n; i = r + 1) {
        if(k / i) r = std:: min(n, (int)k / (k / i));
        else r = n;
        Answer += (1LL * (r - i + 1) * k - 1LL * (k / i) * (i + r) * (r - i + 1) / 2);
    }
    std:: cout << Answer;
    return 0;
}
原文地址:https://www.cnblogs.com/shandongs1/p/9177875.html