Pagini recente » Cod sursa (job #2519943) | Cod sursa (job #461497) | Cod sursa (job #1621748) | Cod sursa (job #1736090) | Cod sursa (job #2080249)
#include <fstream>
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
const int MOD = 9901;
long long Raise(int a, int b) {
long long ans = 1;
while (b) {
if (b & 1) {
ans = (ans * a) % MOD;
}
a = (a * a) % MOD;
b >>= 1;
}
return ans;
}
void Solve(int a, int b) {
long long s = 1;
for (int i = 2; i * i <= a; i ++) {
if (a % i) {
continue;
}
int cur_exp = 0;
while (a % i == 0) {
a /= i;
cur_exp ++;
}
cur_exp *= b;
if (i % MOD == 0) {
continue;
}
if (i % MOD == 1) {
s = (s * (cur_exp + 1)) % MOD;
}
else {
s = (s * (Raise(i, cur_exp + 1) - 1) * (Raise(i, MOD - 2) - 1));
}
}
if (a != 1) {
if (a % MOD == 1) {
s = (s * (b + 1)) % MOD;
}
else if (a % MOD) {
s = (s * (Raise(a, b + 1) - 1) * Raise(a - 1, MOD - 2)) % MOD;
}
}
cout << s << '\n';
}
int main() {
int a, b;
cin >> a >> b;
Solve(a, b);
}