Pagini recente » Istoria paginii utilizator/boycwalex94 | Istoria paginii runda/cssc/clasament | Istoria paginii blog/primegenerator | Istoria paginii utilizator/tdrking | Cod sursa (job #1900897)
#include <cstdio>
#define MOD 9901
inline int lgput(long long a,long long b){
int ans=1;
while(b){
if(b&1)
ans=(ans*a)%MOD;
b>>=1;
a=(a*a)%MOD;
}
return ans;
}
int main(){
FILE*fi,*fout;
int a,div,ans;
long long b;
fi=fopen("sumdiv.in" ,"r");
fout=fopen("sumdiv.out" ,"w");
fscanf(fi,"%d %lld " ,&a,&b);
div=2;
ans=1;
while(div*div<=a){
int exp=0;
while(a%div==0){
a/=div;
exp++;
}
if(exp>0){
long long x=b*exp;
ans=(ans*(((lgput(div,x+1)-1+MOD)*lgput(div-1,MOD-2))%MOD))%MOD;
}
div++;
}
if(a>1){
int exp=1;
long long x=b*exp;
div=a;
ans=(ans*(((lgput(div,x+1)-1+MOD)*lgput(div-1,MOD-2))%MOD))%MOD;
}
if(a==0)
ans=0;
if(b==0)
ans=1;
fprintf(fout,"%d" ,ans);
fclose(fi);
fclose(fout);
return 0;
}