Pagini recente » Cod sursa (job #1044575) | Cod sursa (job #708225) | Cod sursa (job #1866761) | Cod sursa (job #1089050) | Cod sursa (job #2774860)
#include<stdio.h>
int a,b,s,p,i;
int A(int a,int n)
{
if(!n)
return 1;
int x=A(a,n>>1);
x=(x*x)%9901;
if(n&1)
x=(x*a)%9901;
return x;
}
int C(int a)
{
int r;
if(!a)
return 0;
for(r=1;r%a;r+=9901);
return r/a;
}
int B(int q,int e)
{
return q==1?(e+1)%9901:(((A(q,e+1)+9900)%9901)*C((q+9900)%9901))%9901;
}
int main()
{
freopen("sumdiv.in","r",stdin),freopen("sumdiv.out","w",stdout),scanf("%d%d",&a,&b);
for(;!(a&1);++p,a>>=1);
for(s=B(2,p*b),i=3;i*i<=a;i+=2)
if(!(a%i)) {
for(p=0;!(a%i);++p,a/=i);
s=(s*B(i%9901,p*b))%9901;
}
if(a>1)
s=(s*B(a%9901,b))%9901;
printf("%d",s);
return 0;
}