Pagini recente » Cod sursa (job #2098958) | Cod sursa (job #1270466) | Cod sursa (job #2449883) | Cod sursa (job #487374) | Cod sursa (job #1717098)
#include<bits/stdc++.h>
using namespace std;
const int MOD=9901;
int i,a,b,p[105],q[105],nr;
long long rs=1;
long long Pow(long long a,long long b) {
long long ans=1;
while(b)
if(b&1) ans*=a,ans%=MOD,--b;
else a*=a,a%=MOD,b/=2;
return ans;
}
int main()
{
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
ios_base::sync_with_stdio(0);
cin>>a>>b;
for(i=2;i*i<=a;++i)
{
if(a%i) continue;
++nr; p[nr]=i%MOD;
while(a%i==0) ++q[nr],a/=i;
}
if(a>1) p[++nr]=a,q[nr]=1;
for(i=1;i<=nr;++i)
{
rs*=Pow(p[i],1LL*b*q[i]+1)-1; rs%=MOD;
while(rs<0) rs+=MOD;
rs*=Pow(p[i]-1,MOD-2); rs%=MOD;
while(rs<0) rs+=MOD;
}
cout<<rs<<'\n';
return 0;
}