上完厕所后,蒜头君的手机欠费了,于是他来到了中国移动营业厅。正当他准备交钱时,突然发现钱包不见了。,
“奇怪,今天出门时明明带了钱包。”蒜头君自言自语道。
“别着急,今天推出了一个新活动。只要计算出这道题的答案,就送999元话费”工作人员指着-块公告牌耐心地说。
只见公告牌上写着,计算1^2019 + 2^2019 + 3^2019 + … + n^2019对10086取模的结果,其中n= 10^12。
请你帮助蒜头君计算答案。
答案:4516
#include<iostream>
using namespace std;
typedef long long int LL;
const LL mod = 10086;
LL pow_mod(LL x, LL p)
{
LL res = 1;
while (p)
{
if (p & 1)
{
res = res * x % mod;
}
p >>= 1;
x = x * x % mod;
}
return res;
}
int main()
{
LL ans = 0;
LL tmp = 1e12;
for (int i = 1; i <= mod; i++)
{
ans = (ans + pow_mod(i, 2019)) % mod;
}
ans = ans * (tmp / mod) % mod;
tmp %= mod;
for (int i = 1; i <= tmp; i++)
{
ans = (ans + pow_mod(i, 2019)) % mod;
}
cout << ans << endl;
return 0;
}