Pagini recente » Cod sursa (job #645210) | Cod sursa (job #924592) | Cod sursa (job #2375173) | Cod sursa (job #3237375) | Cod sursa (job #1626734)
#include <cstdio>
#include <cmath>
using namespace std;
int genPut(int d, long long e) {
int p = 1;
while(e) {
if(e & 1)
p = (1LL * p * d) % 9901;
d = (1LL * d * d) % 9901;
e >>= 1;
}
return p;
}
int main() {
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
int a, b;
int sol = 1, e;
scanf("%d%d", &a, &b);
int lim=(int)sqrt((double)a);
for(int i = 2; i <= lim; i++) {
if(a % i == 0) {
e = 0;
while(a % i == 0) {
e++;
a /= i;
}
sol = 1LL * sol * genPut(i, 1LL * e * b + 1) - 1 / (i - 1) % 9901;
}
}
if(a > 1) {
sol = 1LL * sol * genPut(a, b + 1) - 1 / (a - 1) % 9901;
}
printf("%d", sol % 9901);
return 0;
}