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