Pagini recente » Cod sursa (job #3128028) | Cod sursa (job #3165051) | Cod sursa (job #3185663) | Cod sursa (job #3284168) | Cod sursa (job #3256304)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
#define int long long
const int MOD=9901;
int qpow(int a, int b)
{
if(b==0)
return 1;
if(b==1)
return a%MOD;
if(b%2==0)
{
int aux=qpow(a, b/2);
return (aux*aux)%MOD;
}
else return (a*qpow(a, b-1))%MOD;
}
int invMod(int x)
{
return qpow(x, MOD-2);
}
signed main()
{
int x,n;
fin>>x>>n;
if(x==0)
{
fout<<0;
return 0;
}
if(n==0)
{
fout<<1;
return 0;
}
int d,exp;
int sum=1;
for(d=2; d*d<=x; d++)
{
if(x%d==0)
{
exp=0;
while(x%d==0)
{
exp++;
x/=d;
}
int pdiv=qpow(d, (exp*n+1));
sum*=(pdiv-1)*invMod(d-1);
sum%=MOD;
}
}
if(x>1)
{
int pdiv=qpow(x, (n+1));
sum*=(pdiv-1)*invMod(x-1);
sum%=MOD;
}
fout<<sum;
return 0;
}