Pagini recente » Cod sursa (job #2587432) | Cod sursa (job #2636905) | Cod sursa (job #975196) | Cod sursa (job #1136375) | Cod sursa (job #2091996)
#include <bits/stdc++.h>
#define MOD 9901
using namespace std;
typedef long long ll;
ll a, b, s = 1;
ll mpow(ll x, ll p)
{
ll r = 1;
while(p)
{
if(p & 1)
r = (r * x) % MOD;
x = (x * x) % MOD;
p >>= 1;
}
return r;
}
void add(ll d, ll p)
{
d %= MOD; p *= b;
if(d == 0) return;
if(d == 1)
{
s = (s * (p + 1)) % MOD;
return;
}
ll aux = ((mpow(d, p + 1) - 1) * mpow(d - 1, MOD - 2)) % MOD;
s = (s * aux) % MOD;
}
int main()
{
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
scanf("%lld%lld", &a, &b);
for(int i = 2; i * i <= a; i++)
{
int p = 0;
while(a % i == 0)
{
p++;
a /= i;
}
if(!p) continue;
add(i, p);
}
if(a > 1) add(a, 1);
printf("%lld", s);
return 0;
}