Pagini recente » Cod sursa (job #2116297) | Cod sursa (job #42534) | Cod sursa (job #1490062) | Cod sursa (job #715382) | Cod sursa (job #942755)
Cod sursa(job #942755)
#include<stdio.h>
#include<vector>
#include<algorithm>
#define mod 9901
#include<math.h>
using namespace std;
typedef long long i64;
i64 power(i64 a,i64 n,i64 k)
{
i64 r=1;
for(r=1,a=a%k;n;n>>=1)
{
if(n&1)
r=(r*a)%k;
a=(a*a)%k;
}
return r;
}
i64 invmod(i64 x)
{
return power(x,mod-2,mod);
}
int main()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
i64 numitor=1,lim,e,d,a,b,rez=1,x,y;
scanf("%lld%lld",&a,&b);
lim=(i64)sqrt(1.0*a);
for(d=2;d<=lim && a>1;d++)
if(a%d==0)
{
e=0;
while(a%d==0) {a=a/d;e+=b;}
x=(power(d,e+1,mod)+mod-1)%mod;
y=(d-1)%mod;
numitor=(numitor*y)%mod;
rez=(rez*x)%mod;
}
if(a>1)
{
d=a;e=b;
x=(power(d,e+1,mod)+mod-1)%mod;
y=(d-1)%mod;
numitor=(numitor*y)%mod;
rez=(rez*x)%mod;
}
printf("%lld\n",rez*invmod(numitor)%mod);
return 0;
}