你最愿意做的哪件事,才是你的天赋所在

0%

HDU-6265

题目链接

HDU-6265

思路

因为$\phi$函数是积性函数,所以他的和函数也是积性函数,所以我们分别算出每一个质数对它的贡献然后相乘即可。

这样就能对每一个进行计算答案了,注意当i=0的时候的答案需要另外算。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int md = 998244353;
ll quick_pow(ll a,ll b)
{
ll res=1;
a%=md;
while(b)
{
if(b&1)res=(res*a)%md;
b>>=1;
a=(a*a)%md;
}
return res;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int m;
scanf("%d",&m);
ll ans = 1;
while(m--)
{
ll p,q;
scanf("%lld %lld",&p,&q);
ll res=1;
res=(((q*(p-1))%md*quick_pow(p,q-1)%md)%md+quick_pow(p,q))%md;
ans=(ans*res)%md;
}
cout<<ans<<endl;
}
}
-------------你最愿意做的哪件事才是你的天赋所在-------------