Pagini recente » Cod sursa (job #1277088) | Cod sursa (job #1445506) | Cod sursa (job #2343920) | Cod sursa (job #651967) | Cod sursa (job #3256297)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
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, MOD-2);
}
int main()
{
int x,n;
fin>>x>>n;
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)%MOD);
sum*=(pdiv-1)*invMod(d-1);
}
}
if(x>1)
{
int pdiv=qpow(x, (n+1)%MOD);
sum*=(pdiv-1)*invMod(x-1);
}
fout<<sum;
return 0;
}