Pagini recente » Cod sursa (job #807208) | Cod sursa (job #2575020) | Cod sursa (job #1266160) | Cod sursa (job #447206) | Cod sursa (job #3255687)
#include <fstream>
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
const int M=9901;
int plog(int p,int b,int d)
{
p=p*b;
int P=1;
d=d%M;
while(p!=0)
{
if(p%2==1){
P=P*d;
P=P%M;
if(P==0)
P=M;
}
d=d*d%M;
p/=2;
}
return P;
}
int main()
{
int a,b;
cin>>a>>b;
long long d=2,suma=1;
while(d*d<=a)
{
if(a%d==0)
{
int p=0;
long long putere=1;
while(a%d==0)
{
p++;
a/=d;
}
putere=plog(p,b,d)*d%M;
if(putere==0)
putere=M;
putere--;
suma=(suma*putere)/(d-1)%M;
}
d++;
}
if(a!=1)
{
long long putere=plog(1,b,a)*a%M;
putere--;
suma=suma*putere/(a-1)%M;
}
cout<<suma;
return 0;
}