Pagini recente » Cod sursa (job #1832653) | Cod sursa (job #3347371) | Cod sursa (job #3313810) | Cod sursa (job #3332223) | Cod sursa (job #3305683)
#include <fstream>
#define NMAX 100000
#define MOD 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
long long A,B,s;
long long fast_exp(long long baza, long long exp)
{
baza=baza%MOD;
long long ans=1;
while(exp>0)
{
if(exp%2==1)
{
ans=(ans*baza)%MOD;
}
baza=(baza*baza)%MOD;
exp=exp/2;
}
return ans%MOD;
}
int main()
{
fin>>A>>B;
if(A==0 && B>0)
{
fout<< 0 << "\n";
return 0;
}
if(B==0)
{
fout<< 1 << "\n";
return 0;
}
long long d,e;
s=1;
d=2;
while(A>1)
{
e=0;
while(A%d==0)
{
A=A/d;
e++;
}
if(e)
{
long long p,inv;
p=fast_exp(d,e*B+1)-1;
if(p<0)
{
p+=MOD;
}
inv=fast_exp(d-1,MOD-2);
s=((s*p)%MOD*inv)%MOD;
}
if(d==2)
{
d=3;
}
else
{
d+=2;
}
if(d*d>A && A>1)
{
d=A;
}
}
fout<< (s%MOD+MOD)%MOD << "\n";
return 0;
}