Pagini recente » Cod sursa (job #1219413) | Cod sursa (job #2753696) | Cod sursa (job #2675340) | Cod sursa (job #2907601) | Cod sursa (job #1925747)
#include <cstdio>
const int MOD = 9901;
int pow2(int b, int e) {
int acum = 1;
b = b % MOD;
while(e > 0) {
if(e % 2 == 1)
acum = acum * b % MOD;
b = b * b % MOD;
e = e / 2;
}
return acum;
}
int smec(int p, int x) {
if(x == 0) return 1;
else if(x % 2 == 0) return p * (1 + smec(p, x - 1)) % MOD;
else return smec(p, x / 2) * (1 + pow2(p, (x + 1) / 2)) % MOD;
}
int main() {
int a, b, rez;
FILE *fin = fopen("sumdiv.in", "r");
fscanf(fin, "%d%d", &a, &b);
fclose(fin);
rez = 1;
int d = 2;
while(d * d <= a) {
int e = 0;
while(a % d == 0) {
a = a / d;
++e;
}
if(e > 0)
rez = rez * smec(d, e * b) % MOD;
++d;
}
if(a > 1)
rez = rez * smec(a, b) % MOD;
FILE *fout = fopen("sumdiv.out", "w");
fprintf(fout, "%d", rez);
fclose(fout);
return 0;
}