Pagini recente » Cod sursa (job #13805) | Cod sursa (job #596107) | Cod sursa (job #1567035) | Cod sursa (job #1622113) | Cod sursa (job #2468829)
#include <fstream>
#define MOD 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int a,b;
int lgput(int x, int y)
{
if (y == 1)
return x%MOD;
int val = lgput(x, y/2)%MOD;
if (y%2 == 0)
return (val*val)%MOD;
else
return (((val*val)%MOD)*x)%MOD;
}
int main()
{
fin >> a >> b; long long sol = 1;
for (int d=2; d<=a/d; d++)
if (a%d == 0)
{
int exponent = 0;
while (a%d == 0)
{
a /= d;
exponent++;
}
sol *= 1LL*(lgput(d, exponent*b+1)-1); sol %= MOD;
sol *= 1LL*lgput(d-1, MOD-2); sol %= MOD;
}
if (a != 1)
{
if ((a-1)%MOD == 0)
{
sol *= 1LL*(b+1)%MOD;
sol %= MOD;
}
else
{
sol *= 1LL*(lgput(a, b+1)-1); sol %= MOD;
sol *= 1LL*lgput(a-1, MOD-2); sol %= MOD;
}
}
while (sol < 0)
sol += MOD;
fout << sol;
return 0;
}