Pagini recente » Cod sursa (job #2946496) | Cod sursa (job #2942437) | Cod sursa (job #2093185) | Cod sursa (job #1343665) | Cod sursa (job #905566)
Cod sursa(job #905566)
#include<stdio.h>
#define modulo 9901
long long pd, x, a, b, px, d, rez, i;
long long sum(long p)
{
long long a;
if (p==0)
{ px=1; return 1; }
else
{
a=sum((p+1)/2-1);
a=(a+a*px*x)%modulo;
px=px*px;
for (i=((p+1)/2-1)*2+1;i<=p;i++)
px=(px*x)%modulo;
if (p%2==0)
a=(a+px)%modulo;
return a;
}
}
void calculare()
{
pd=pd*b; x=d%modulo;
rez=(rez*sum(pd))%modulo;
}
void rezolvare()
{
d=2;
while (d*d<=a)
{
pd=0;
while (a%d==0)
{ pd++; a/=d; }
calculare();
d++;
}
if (a>1)
{
pd=b; x=a%modulo;
rez=(rez*(sum(pd)))%modulo;
}
printf("%ld",rez);
}
int main()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
scanf("%ld %ld",&a,&b);
rez=1;
rezolvare();
return 0;
}