Pagini recente » Cod sursa (job #2540282) | Cod sursa (job #2028468) | Cod sursa (job #1833085) | Cod sursa (job #508431) | Cod sursa (job #1547769)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
const int mod=9901;
int log_pow(int n, int p)
{
int s=1;
while(p)
{
if(p&1) s=(1LL*s*n)%mod;
n=(1LL*n*n)%mod;
p=p>>1;
}
return s;
}
int main()
{
ifstream fin ("sumdiv.in");
ofstream fout ("sumdiv.out");
ios_base::sync_with_stdio(false);
int a, b, sol, s, i, nr;
fin >> a >> b;
sol=1;
for(i=2; i<=sqrt(a); i++)
if(a%i==0)
{
for(nr=0; a%i==0; a=a/i) nr++;
s=(log_pow(i, nr*b+1)-1+mod)%mod;
sol=(1LL*sol*s*log_pow(i-1,mod-2))%mod;
}
if(a>1)
{
if(a%mod==1) sol=(1LL*sol*(b+1))%mod;
else
{
s=(log_pow(a,b+1)-1+mod)%mod;
sol=(1LL*sol*s*log_pow(a-1,mod-2))%mod;
}
}
fout << sol;
fin.close();
fout.close();
return 0;
}