链接: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; }