Pagini recente » Cod sursa (job #2246149) | Cod sursa (job #2369074) | Cod sursa (job #2667388) | Cod sursa (job #834717) | Cod sursa (job #1592365)
#include <bits/stdc++.h>
#define ll long long
#define Mod 9901
FILE *fin=freopen("sumdiv.in", "r", stdin);
FILE *fout=freopen("sumdiv.out", "w", stdout);
using namespace std;
ll a, b;
ll sol = 1LL;
void read()
{
scanf("%lld %lld", &a, &b);
}
inline ll Pow(ll x, ll y)
{
ll i, aux = x, res = 1;
for(i = 1; i <= y; i <<= 1)
{
if( i & y)
res = (1LL * res * aux) % Mod;
aux = (1LL * aux * aux) % Mod;
}
return res;
}
ll check(ll x)
{
while(x < 0)
x += Mod;
return x;
}
void solve()
{
int i;
ll exp;
for(i = 2; i * i <= a; ++ i)
{
if(a % i == 0)
{
exp = 0;
while(a % i == 0)
{
++ exp;
a /= i;
}
exp *= b;
sol = (1LL * sol * check((Pow(i % Mod, exp + 1) - 1)) * Pow((i - 1), Mod - 2)) % Mod;
}
}
if(a > 1)
{
if(a % Mod == 1)
sol = (sol * ((b + 1) % Mod)) % Mod;
else
sol = (1LL * sol * (check((Pow(a % Mod, b + 1) - 1)) * Pow((a - 1), Mod - 2))) % Mod;
}
}
void write()
{
printf("%lld\n", sol);
}
int main()
{
read();
solve();
write();
return 0;
}