原题链接
题意简述
给定正整数 l,r,a,计算:
i=l∑rj=i+1∑r[a∣j−i]
解题思路
i=l∑rj=i+1∑r[a∣j−i]=d=1∑r−l[a∣d](r−l−d+1)=k=1∑⌊ar−l⌋(r−l−ka+1)=k=1∑⌊ar−l⌋(r−l+1)−ak=1∑⌊ar−l⌋k=⌊ar−l⌋(r−l+1)−a2⌊ar−l⌋(⌊ar−l⌋+1)
参考代码
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll l,r,a;
cin>>l>>r>>a;
cout<<((r-l)/a)*(r-l+1)-a*((r-l)/a)*((r-l)/a+1)/2<<'\n';
return 0;
}