【NOIP2017模拟9.2A组】春思
Description
Input
Output
Sample Input
2 3
Sample Output
15
Data Constraint
Hint
题解
题意
求A^B的约数的和mod 9901
分析
数学结论题
套上等比数列求和、快速幂就可以过
时间 O(log(n)^2)
code
#include<cstdio>
#include<cstdlib>
#define R register
#define ll long long
using namespace std;
const ll mo=9901;
ll a,b;
inline int power(R int a,R ll k){
R int re=1;
a%=mo;
while(k){
if(k&1)re=re*a%mo;
a=a*a%mo,k>>=1;
}
return re+mo;
}
int main(){
scanf("%lld%lld",&a,&b);
R int ans=1;
for(R ll i=2;i*i<=a;++i)
if(a%i==0){
R int cnt=0;
while(a%i==0)++cnt,a/=i;
ans=ans*(power(i,cnt*b+1)-1)%mo*power(i-1,mo-2)%mo;
}
if(a>1)ans=ans*(power(a,b+1)-1)%mo*power(a-1,mo-2)%mo;
printf("%d",ans);
}