Pagini recente » Cod sursa (job #1735238) | Cod sursa (job #2926589) | Cod sursa (job #1438991) | Cod sursa (job #1626860) | Cod sursa (job #2065620)
#include <cstdio>
typedef long long i64;
#define MOD 9901
inline i64 pow(i64 a, i64 b) {
i64 p = 1;
while (b > 0) {
if (b & 1) {
p = (p * a) % MOD;
}
a = (a * a) % MOD;
b >>= 1;
}
return p;
}
int main() {
i64 a, b, d, e, ans;
FILE *f = fopen("sumdiv.in", "r");
fscanf(f, "%lld%lld", &a, &b);
fclose(f);
d = 2;
ans = 1;
while (d * d <= a) {
if (!(a % d)) {
e = 0;
while (!(a % d)) {
++e;
a /= d;
}
ans = (ans * ((pow(d, b * e + 1) - 1) % MOD)) % MOD;
ans = (ans * (pow(d - 1, MOD - 2) % MOD)) % MOD;
}
++d;
}
if (a > 1) {
if (a % MOD == 1) {
ans = (ans * (b + 1)) % MOD;
} else {
ans = (ans * ((pow(a, b + 1) - 1) % MOD)) % MOD;
ans = (ans * (pow(a - 1, MOD - 2) % MOD)) % MOD;
}
}
f = fopen("sumdiv.out", "w");
fprintf(f, "%lld\n", ans);
fclose(f);
return 0;
}