Pagini recente » Cod sursa (job #1176177) | Cod sursa (job #3146468)
#include <bits/stdc++.h>
#define mod 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int a, b, r = 1, d, e;
static inline int put(int a, int b) {
a %= mod;
int p = 1;
while(b) {
if(b & 1) p = (p * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return p;
}
static inline int invMod(int x) {
return put(x, mod - 2);
}
int main() {
fin >> a >> b;
while((a & 1) == 0){
a >>= 1;
e++;
}
if(e) r = r * (put(2, b * e + 1) + mod - 1) % mod;
d = 3;
while(d * d <= a) {
e = 0;
while(a % d == 0){
a /= d;
e++;
}
if(e) {
if(d % mod == 1) r = (r * (e * b + 1)) % mod;
else if(d % mod) r = r * (put(d, e * b + 1) + mod - 1) % mod * invMod(d - 1) % mod;
}
d += 2;
}
if(a > 1) {
if(a % mod == 1) r = (r * (1 * b + 1)) % mod;
else if(a % mod) r = r * (put(a, 1 * b + 1) + mod - 1) % mod * invMod(a - 1) % mod;
}
fout << r;
return 0;
}