Pagini recente » Cod sursa (job #2695591) | Cod sursa (job #2816976) | Cod sursa (job #2150818) | Cod sursa (job #2766043) | Cod sursa (job #2057852)
#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;
b%=MOD;
while(e)
{
if(e&1)
p=(b*p)%MOD;
b=(b*b)%MOD;
e>>=1;
}
return p;
}
int main()
{
int n,b;
si>>n>>b;
if(b==0)
{
so<<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;
}