Pagini recente » Cod sursa (job #2777090) | Cod sursa (job #2319063) | Cod sursa (job #2247933) | Cod sursa (job #426214) | Cod sursa (job #1169071)
#include <fstream>
#define MOD 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int A,B;
int Prime[5000005],Exp[5000005];
void Prime_Facts()
{
int i=2;
int initial=A;
while(i*i<=initial && A>0)
{
if(A%i==0)
Prime[++Prime[0]]=i;
while(A%i==0)
{
Exp[Prime[0]]++;
A/=i;
}
}
if(A!=1)
{
Prime[++Prime[0]]=A;
Exp[Prime[0]]=1;
}
}
int Power_Log(int N,int P)
{
int sol=1;
while(P>0)
{
if(P%2==1)
sol=(sol*N)%MOD;
N=(N*N)%MOD;P/=2;
}
return sol;
}
void Browse()
{
int result=1;
for(int i=1;i<=Prime[0];i++)
{
int exponent=Exp[i]*B;
int value=Power_Log(Prime[i],exponent+1);
value--;
value+=MOD;
value%=MOD;
result*=value*Power_Log(Prime[i]-1,MOD-2);
result%=MOD;
}
g<<result<<"\n";
}
int main()
{
f>>A>>B;
Prime_Facts();
Browse();
return 0;
}