Pagini recente » Cod sursa (job #294749) | Cod sursa (job #1646130) | Cod sursa (job #1032095) | Cod sursa (job #2010863) | Cod sursa (job #2236849)
#include<fstream>
#define MOD 9901
using namespace std;
ifstream fi("sumdiv.in");
ofstream fo("sumdiv.out");
int a,b,ca,i,E[105],D[105],nrd,rez;
int p(int a, int b)
{
int rez=1;
int i;
for(i=0; (1<<i)<=b; i++)
{
if((1<<i)&b)
rez=(rez*a)%MOD;
a=(a*a)%MOD;
}
return rez;
}
int prog(int q, int n)
{
if(q==1)
return (n%MOD);
int t1=p(q,n);
t1=(t1-1+MOD)%MOD;
int t2=(q-1+MOD)%MOD;
t1=(t1*p(t2,MOD-2))%MOD;
return t1;
}
int main()
{
fi>>a>>b;
ca=a;
for(i=2; i*i<=a; i++)
{
if(ca<=1)
break;
if(ca%i==0)
{
D[++nrd]=i;
while(ca>1 && ca%i==0)
{
E[nrd]++;
ca/=i;
}
}
}
if(ca!=1)
{
D[++nrd]=ca;
E[nrd]=1;
}
rez=1;
for(i=1; i<=nrd; i++)
rez=(rez*prog(D[i]%MOD,E[i]*b+1))%MOD;
fo<<rez<<"\n";
fi.close();
fo.close();
return 0;
}