观察样例 2 ,可以发现答案为 (3+3+3),对于 k 的倍数:ak,其贡献到 (a+1)k 位置时改变,不由得想到差分的性质
const int N=1e6+5;
int n,m;
int i,j,k;
ll a[N];
int main()
{
while(~sdd(n,k)){
for(int i=k;i<=n;i+=k) a[i]=i;
ll ans=0;
for(int i=1;i<=n;i++) a[i]+=a[i-1];
for(int i=1;i<=n;i++) ans+=a[i];
pll(ans);
}
}