链接:https://ac.nowcoder.com/acm/contest/11160/B

小G给你两个数n,k
我们定义F(x)为i从1~x i%k==0的i的和
现在希望你求出sum i=1..n F(i)

假设 a 满足 % k == 0 的数之和,x 能满足的话, 从定义来看,那么大于a,小于n的任何数也能满足,a要再加一次。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ll n, k;
    cin >> n >> k;
    ll ans = 0;
    for (int i = 1; i <= n; ++i) {
        //当前i满足, 后续的 n - i个数也满足, 再加上本身, 有n - i + 1个数, 对答案的贡献为(n - i + 1) * i
        if (i % k ==0) {
            ans += (n - i + 1) * i;
        }
    }
    cout << ans << endl;
    return 0;
}