Pagini recente » Cod sursa (job #1271531) | Cod sursa (job #2427979) | Cod sursa (job #764435) | Cod sursa (job #2024743) | Cod sursa (job #1767058)
#include <iostream>
#include <cstdio>
#define MOD 9901
using namespace std;
int rise(int x, int p)
{
int nr = 1;
for (int i = 0; p>>i; i++) {
if ((p>>i) & 1)
nr = (1LL * nr * x) % MOD;
x = (1LL*x*x) % MOD;
}
return nr;
}
int invers(int x)
{
x %= MOD;
return rise(x, MOD-2);
}
int a, b;
int p[100], e[100], nq;
void citire()
{
scanf("%d %d", &a, &b);
for (int i = 2; i*i <= a; i++)
if (a % i == 0) {
p[++nq] = i;
while (a % i == 0) {
e[nq]++;
a /= i;
}
}
if (a > 1) {
p[++nq] = a;
e[nq] = 1;
}
}
void solve()
{
int rez = 1;
for (int i = 1; i <= nq; i++) {
if (p[i] % MOD == 1)
rez = (1LL*rez*(e[i]*b+1)) % MOD;
else
rez = (1LL*rez*(rise(p[i], e[i]*b+1)-1)*invers(p[i]-1))%MOD;
}
while (rez < 0) rez += MOD;
printf("%d", rez);
}
int main()
{
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
citire();
solve();
return 0;
}