Pagini recente » Cod sursa (job #806824) | Cod sursa (job #230197) | Cod sursa (job #3167288) | Cod sursa (job #2647010) | Cod sursa (job #478130)
Cod sursa(job #478130)
#include <cstdio>
const int mod = 9901;
using namespace std;
int A, B, rez, nr;
inline int putere(int N, int exp) {
if (exp == 0) return 1;
if (exp == 1) return N % mod;
if (exp % 2 == 0) {
int aux = putere(N % mod, exp / 2);
return (aux * aux % mod);
}
else {
return (putere(N % mod, exp - 1) * N % mod);
}
}
int main() {
int i;
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
scanf("%d%d", &A, &B);
if (A == 1) {
printf("1\n");
return 0;
}
rez = 1;
for (i = 2; i * i <= A; i++) if (A % i == 0) {
nr++;
int exp = 0;
while (A % i == 0) {
A /= i;
exp++;
}
exp *= B;
if (i % mod == 1)
rez = rez * (exp + 1) % mod;
else
rez = rez * (putere(i, exp + 1) + mod - 1) % mod * putere(i - 1, mod - 2) % mod;
}
// printf("%d\n", A);
if (A != 1)
if (A % mod != 0)
rez = (rez * ((putere(A, B + 1) + mod - 1) % mod)) % mod * putere(A % mod - 1, mod - 2) % mod;
else
rez = rez * (B % mod + 1) % mod;
printf("%d\n", rez);
return 0;
}