Pagini recente » Cod sursa (job #915633) | Cod sursa (job #1486303) | Cod sursa (job #487167) | Cod sursa (job #97006) | Cod sursa (job #3164598)
#pragma message ("??????????")
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <utility>
#include <algorithm>
std::ifstream fin("sumdiv.in");
std::ofstream fout("sumdiv.out");
const int64_t MOD = 9901;
int64_t bin_pow(int64_t base, int64_t exp) {
int64_t ret = 1;
base %= MOD;
while (exp) {
if (exp&1) ret = 1LL*ret*base%MOD;
base = 1LL*base*base%MOD;
exp >>= 1;
}
return ret;
}
int64_t sol(int64_t a, int64_t b) {
int64_t ret = 1;
for (int64_t d = 2; d*d <= a; d++) {
int64_t exp = 0;
while (a%d==0) {
exp += b;
a /= d;
}
ret *= (bin_pow(d,exp+1)-1)*bin_pow(d-1,MOD-2);
ret %= MOD;
}
if (a>1) {
ret *= (bin_pow(a,b+1)-1)*bin_pow(a-1,MOD-2);
ret %= MOD;
}
return ret;
}
int main() {
int64_t a, b;
fin >> a >> b;
fout << sol(a,b) << "\n";
}