Pagini recente » Cod sursa (job #494931) | Cod sursa (job #2072148) | Cod sursa (job #2631933) | Cod sursa (job #2546046) | Cod sursa (job #2418515)
#include <fstream>
using namespace std;
const string FILE_NAME = "sumdiv";
const int64_t MOD { 9901 };
ifstream in { FILE_NAME + ".in" };
ofstream out { FILE_NAME + ".out" };
int64_t A, B;
int64_t sol { 1 };
int64_t pow(int64_t b, int64_t e) {
int64_t sol { 1 };
for (; e; e /= 2, b = b * b % MOD)
if (e % 2)
sol = sol * b % MOD;
return sol;
}
inline void desc(int64_t b) {
if (A % b)
return;
int64_t e { 0 };
while (A % b == 0) {
++e;
A /= b;
}
sol = sol * (MOD + pow(b, e * B + 1) - 1) % MOD;
sol = sol * pow(b - 1, MOD - 2) % MOD;
}
int main() {
in >> A >> B;
if (!A) {
out << 0;
return;
}
desc(2);
desc(3);
for (int64_t i { 5 }; i * i <= A; i += 6) {
desc(i);
desc(i + 2);
}
if (A != 1)
desc(A);
out << sol;
}