Pagini recente » Cod sursa (job #1696608) | Cod sursa (job #1261828) | Cod sursa (job #475853) | Cod sursa (job #1595974) | Cod sursa (job #756418)
Cod sursa(job #756418)
#include <cstdio>
#include <vector>
#define Mod 9901
#define LL long long
using namespace std;
int A, B, S;
inline int Pow (int X, LL P)
{
int R=1; X%=Mod;
while (P)
{
if (P%2==0) X=(X*X)%Mod, P/=2;
else R=(R*X)%Mod, --P;
}
return R;
}
inline int MI (int X)
{
return Pow (X, (LL)Mod-2);
}
inline int ComputeF (int X, LL P)
{
return (((Pow (X, P+1)-1+Mod)%Mod)*MI (X-1))%Mod;
}
void Solve ()
{
S=1;
for (int i=2; i*i<=A and A>1; ++i)
{
int e=0;
for (; A%i==0; A/=i, ++e);
if (e) S=(S*ComputeF (i, 1LL*e*B))%Mod;
}
if (A>1) S=(S*ComputeF (A, 1LL*B))%Mod;
}
void Read ()
{
freopen ("sumdiv.in", "r", stdin);
scanf ("%d %d", &A, &B);
}
void Print ()
{
freopen ("sumdiv.out", "w", stdout);
printf ("%d\n", S);
}
int main ()
{
Read ();
Solve ();
Print ();
return 0;
}