Pagini recente » Cod sursa (job #2331221) | Cod sursa (job #615570) | Cod sursa (job #2344302) | Cod sursa (job #1397239) | Cod sursa (job #2073176)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
const int MOD = 9901;
int Raise(int a, int p) {
int k = 1;
int ans = 1;
while (p) {
if (p & 1) {
ans *= a;
ans %= MOD;
}
a *= a;
a %= MOD;
p >>= 1;
}
return ans;
}
void Solve(int a, int b) {
long long s = 1ll;
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;
int cur_nr = Raise(i, cur_exp);
s *= ((cur_nr * i) - 1) / (i - 1);
s %= MOD;
}
if (a != 1) {
int cur_nr = Raise(a, b);
s *= ((cur_nr * a - 1) / (a - 1));
s %= MOD;
}
cout << s << '\n';
}
int main(int argc, char const *argv[]) {
int a, b;
cin >> a >> b;
Solve(a, b);
}