Pagini recente » Cod sursa (job #1886970) | Cod sursa (job #2443144) | Cod sursa (job #1215530) | Cod sursa (job #1609635) | Cod sursa (job #290173)
Cod sursa(job #290173)
#include<stdio.h>
long long int a,b,baza[50],expo[50],nf,i,bb,ee,sol=1,p,sc,j;
void readd(),factorizare(),solve();
int main()
{
readd();
if(!b){printf("1");return 0;}
factorizare();
solve();
return 0;
}
void readd()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
scanf("%lld%lld",&a,&b);
}
void factorizare()
{
if(a%2==0)
baza[++nf]=2;
while(a%2==0){expo[nf]++;a/=2;}
for(i=3;i<8000;i+=2)
if(a%i==0)
{ baza[++nf]=i;
while(a%i==0){expo[nf]++;a/=i;}
}
if(a>1){baza[++nf]=a;expo[nf]=1;}
}
void solve()
{
for(i=1;i<=nf;i++)
{ bb=baza[i];ee=expo[i];
ee*=b;
bb%=9901;
if(bb>1)
{ ee%=9900;
if(!ee){sol=0;return;}
p=1;sc=1;for(j=1;j<=ee;j++){p=(p*bb)%9901;sc+=p;}
sc%=9901;
sol*=sc;
sol%=9901;
}
if(bb==1)
{ ee++;
ee%=9901;
if(!ee){sol=0;return;}
sol*=ee;
sol%=9901;
}
}
printf("%lld",sol);
}