Pagini recente » Cod sursa (job #2324065) | Cod sursa (job #1713059) | Cod sursa (job #2120261) | Cod sursa (job #2848303) | Cod sursa (job #3216832)
#include <fstream>
#include <iostream>
#include <vector>
#define MOD 9901
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
vector <pair<long long int,long long int>> di;
long long int A,B,ans=1;
long long int exp(long long int val,int e);
int main()
{
fin>>A>>B;
int d=2;
while(d*d<=A)
{
int ex=0;
while(A%d==0)
{
ex++;
d/=A;
}
if(ex)
di.push_back({d,ex});
d++;
}
if(A>1)
di.push_back({A,1});
for(int i=0;i<di.size();i++)
{
long long int E=di[i].second;
E=(E%(MOD-1)*B+1)%(MOD-1);
long long int aux=(exp(di[i].first,E)-1+MOD)%MOD;
long long int aux1=exp(di[i].first-1,MOD-2);
ans=ans*aux%MOD*aux1%MOD;
}
fout<<ans;
return 0;
}
long long int exp(long long int val,int e)
{
if(!e)
return 1;
long long int aux=exp(val,e/2);
if(e%2)
return aux*aux%MOD*val%MOD;
return aux*aux%MOD;
}