Pagini recente » Cod sursa (job #2547881) | Sandbox (cutiuţa cu năsip) | Istoria paginii runda/pre___oji___2018/clasament | Cod sursa (job #2106659) | Cod sursa (job #789130)
Cod sursa(job #789130)
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
#define modulo 9901
int A, B, ans = 1, V[1010], P[1010], cnt;
int lgput(int n, int p)
{
if(!p) return 1;
if(p & 1) return (n * lgput(n, p - 1)) % modulo;
int x = lgput(n, p / 2);
return (x * x) % modulo;
}
int main()
{
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out", "w", stdout);
int i, j;
scanf("%i %i", &A, &B);
for(i = 2; i * i <= A; i++)
{
int exp = 0;
while(A % i == 0)
exp ++, A /= i;
if(exp)
V[++cnt] = i, P[cnt] = exp * B;
}
if(A > 1)
V[++cnt] = A, P[cnt] = B;
for(i = 1; i <= cnt; i++)
if(V[i] % modulo == 1)
ans = ans * ((P[i] + 1) % modulo) % modulo;
else
ans = (ans * (lgput(V[i], P[i] + 1) - 1 + modulo) % modulo * lgput(V[i] - 1, modulo - 2)) % modulo;
printf("%i\n", ans);
return 0;
}