SUM | ||||||
| ||||||
Description | ||||||
Calculate MOD 1,000,000,007.(1≤n≤1e5, 1≤d≤1e9) | ||||||
Input | ||||||
The first line is an integer t(1≤t≤100), which is the number of test cases. Then t lines follow. Each line contains two numbers n and d. | ||||||
Output | ||||||
T lines, which are the answers. | ||||||
Sample Output | ||||||
3 2 3 3 2 4 1 | ||||||
Hint | ||||||
9 14 10 |
考点:快速幂
#include<iostream>
using namespace std;
typedef long long ll;
const long long MOD = 1e9+7;
long long q_pow(long long a,long long b)
{
long long sum=1;
while(b)
{
if(b&1)
sum = (sum * a)%MOD;
a = (a * a)%MOD;
b>>=1;
}
return sum;
}
int main()
{
int t;
long long n,m,a[100005];
cin>>t;
while(cin>>n>>m)
{
long long ans=0;
for(int i=1; i<=n; i++)
{
a[i]=q_pow(i,m);
a[i]%=MOD;
ans+=a[i];
ans%=MOD;
}
cout<<ans<<endl;
}
}