Pagini recente » Cod sursa (job #404090) | Cod sursa (job #2366093) | Cod sursa (job #163596) | Cod sursa (job #2284400) | Cod sursa (job #2057824)
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;
ifstream si("sumdiv.in");
ofstream so("sumdiv.out");
int p[500005];
long long e[500005];
int rput(int b,long long e)
{
int p=1;
while(e)
{
if(e&1)
p=(1LL*b*p)%MOD;
b=(1LL*b*b)%MOD;
e>>=1;
}
return p;
}
int main()
{
int n,b;
si>>n>>b;
if(b==0)
{
cout<<1;
return 0;
}
int nr=0;
for(int i=2;i*i<=n;++i)
{
if(n%i==0)
{
p[++nr]=i;
while(n%i==0)
{
n/=i;
e[nr]+=b;
}
}
}
if(n!=1)
{
p[++nr]=n;
e[nr]=b;
}
int rez=1;
for(int i=1;i<=nr;i++)
{
p[i]%=MOD;
if(p[i]==1)
{
rez=rez*(e[i]+1)%MOD;
}
else
if(p[i]!=0)
{
int a;
a=rput(p[i],e[i]+1)-1;
if(a<0)
a+=MOD;
a=a*rput(p[i]-1,MOD-2)%MOD;
rez=rez*a%MOD;
}
}
so<<rez<<'\n';
return 0;
}