Pagini recente » Cod sursa (job #1860552) | Cod sursa (job #1910967) | Cod sursa (job #2644813) | Cod sursa (job #1722387) | Cod sursa (job #640958)
Cod sursa(job #640958)
#include <fstream>
#define MOD 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int A , B , sd ;
int lgpow(int x,int y)
{
int ans = 1;
x%=MOD;
for(;y;y>>=1)
{
if(y & 1)
ans = (ans*x)%MOD , y--;
x = (x*x)%MOD;
}
return ans;
}
void solve()
{
int p = 0;
sd = 1;
for(int d=2;d*d<=A;d++)
if(A%d==0)
{
while(A%d==0) A/=d , p++;
p=p*B;
if(A%MOD==1)
sd = sd*((p+1)%MOD)%MOD;
else
sd= (sd*(lgpow(d,p+1)-1+MOD)%MOD*lgpow(d-1,MOD-2))%MOD;
p = 0;
}
if(A>1)
{
p = B;
if(A%MOD==1)
sd = sd*((p+1)%MOD)%MOD;
else
sd= (sd*(lgpow(A,p+1)-1+MOD)%MOD*lgpow(A-1,MOD-2))%MOD;
}
if(!A) sd = 0;
}
int main()
{
fin>>A>>B;
solve();
fout<<sd<<"\n";
return 0;
}