Pagini recente » Cod sursa (job #1217561) | Cod sursa (job #1455779) | Cod sursa (job #2469599) | Cod sursa (job #1499281) | Cod sursa (job #883704)
Cod sursa(job #883704)
#include <fstream>
#include <algorithm>
using namespace std;
const int MOD = 9901;
int power(int x, long long y)
{
if (y == 0) return 1;
if (y % 2 == 0) return power(1LL * x * x % MOD, y >> 1);
return 1LL * x * power(1LL * x * x % MOD, y >> 1) % MOD;
}
inline int invmod(int x)
{
return power(x, MOD - 2);
}
int A, B;
int result = 1;
int main()
{
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
fin >> A >> B;
if (A == 0)
{
fout << A << '\n';
fin.close();
fout.close();
return 0;
}
for (int i = 2; i * i <= A; ++i)
{
int times = 0;
while (A % i == 0)
{
++times;
A /= i;
}
int auxres = power(i, 1LL * B * times + 1);
auxres -= 1;
if (auxres < 0) auxres += MOD;
auxres = 1LL * auxres * invmod(i - 1) % MOD;
result = 1LL * result * auxres % MOD;
}
if (A != 1)
{
int auxres = power(A, B + 1);
auxres -= 1;
if (auxres < 0) auxres += MOD;
auxres = 1LL * auxres * invmod(A - 1) % MOD;
result = 1LL * result * auxres % MOD;
}
fout << result << '\n';
fin.close();
fout.close();
}