Pagini recente » Cod sursa (job #706930) | Cod sursa (job #80944) | Cod sursa (job #839192) | Cod sursa (job #2118040) | Cod sursa (job #1958448)
#include <fstream>
#define MOD 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
long long A, B;
int lgPow(int nr, long long pow)
{
int Sol=1;
while(pow)
{
if(pow&1)
Sol=(1ll*Sol*nr)%MOD;
nr=(1ll*nr*nr)%MOD;
pow/=2;
}
return Sol;
}
int main()
{
int sumDiv=1;
fin>>A>>B;
for(int i=2; i*i<=A; i++)
{
if(A%i==0)
{
long long nrExp=0;
while(A%i==0)
{
nrExp++;
A/=i;
}
sumDiv=(1ll*sumDiv*(lgPow(i, nrExp*B+1)-1))%MOD;
sumDiv=(1ll*sumDiv*lgPow(i-1, MOD-2))%MOD;
}
}
if(A!=1)
{
sumDiv=(1ll*sumDiv*(lgPow(A, B+1)-1))%MOD;
sumDiv=(1ll*sumDiv*lgPow(A-1, MOD-2))%MOD;
}
while(sumDiv<0)
sumDiv+=MOD;
fout<<sumDiv;
}