Pagini recente » Cod sursa (job #1807426) | Cod sursa (job #1429219) | Cod sursa (job #928603) | Cod sursa (job #1923120) | Cod sursa (job #2178173)
#include <fstream>
#define MOD 9901
std::ifstream fin("sumdiv.in");
std::ofstream fout("sumdiv.out");
long long int sol;
long long int a, b;
long long int pow(long long int a, long long int b) {
if (!b)
return 1;
if (b & 1)
return a * pow(a * a % MOD, b >> 1) % MOD;
return pow(a * a % MOD, b >> 1) % MOD;
}
long long int modInv(long long int x) {
return pow(x, MOD - 2);
}
int main() {
sol = 1;
fin >> a >> b;
for (long long int d = 2; d * d <= a; d++) {
long long int exp = 0;
while (a % d == 0) {
exp++;
a /= d;
}
exp *= b;
if (d == MOD)
continue;
if (d % MOD == 1)
sol = sol * (exp + 1) % MOD;
else {
long long int fact = (pow(d, exp + 1) - 1) * modInv(d - 1) % MOD;
sol = sol * fact % MOD;
}
}
if (a > 1 && a % MOD) {
if (a % MOD == 1)
sol = sol * (b + 1) % MOD;
else {
long long int fact = (pow(a, b + 1) - 1) * modInv(a - 1) % MOD;
sol = sol * fact % MOD;
}
}
fout << sol << '\n';
fout.close();
return 0;
}