题面:
模数和
题目描述
给一个 n 和 k,求下列式子的和
i=1∑ni mod k
这个和有可能非常大,请输出它对 109+7 取模的结果
输入格式
输入仅一行,两个正整数,代表 n,k
输出格式
输出仅一行,一个正整数,表示答案
样例 #1
样例输入 #1
10 3
样例输出 #1
10
提示
对于 40% 的数据,n,k≤1,000
对于另外 20% 的数据,n,k≤106
对于另外 20% 的数据,n≤109,k≤106
对于 100% 的数据,n≤1018,k≤109
我的代码(5 pts):
#include <bits/stdc++.h>
using namespace std;
const int Mod = 1e9 + 7;
long long dxsl (long long r) {
return ((r * (r - 1)) % Mod) / 2;
}
int main () {
long long n, k;
cin >> n >> k;
long long m = (n / k) % Mod;
long long p = dxsl (k);
long long f = n % k;
cout << ((((m * p) % Mod) + f) % Mod);
return 0;
}