Pagini recente » Cod sursa (job #396345) | Cod sursa (job #187769) | Istoria paginii runda/simulare_de_oni_8 | Monitorul de evaluare | Cod sursa (job #1548832)
#include <cstdio>
#include <cstdlib>
#define MAXN 5000
#define MOD 9901
inline long long put(long long a,long long b) {
long long prod=1;
while(b){
if(b%2)
prod=(prod*a)%MOD;
b/=2;
a=(a*a)%MOD;
}
return prod;
}
int main(){
FILE*fi,*fout;
long long prod,e,d,a,b;
fi=fopen("sumdiv.in" ,"r");
fout=fopen("sumdiv.out" ,"w");
fscanf(fi,"%lld%lld" ,&a,&b);
printf("%lld %lld " ,a,b);
prod=1;
d=2;
while(d*d<=a){
e=0;
while(a%d==0){
a/=d;
e++;
}
prod=(prod*((put(d,b*e+1)-1+MOD)*put(d-1,MOD-2)))%MOD;
d++;
}
if(a>1)
prod=(prod*(put(a,b+1)-1+MOD)*put(a-1,MOD-2))%MOD;
if(b==0)
fprintf(fout,"1");
if(a==0)
fprintf(fout,"0");
else
fprintf(fout,"%lld" ,prod);
fclose(fi);
fclose(fout);
return 0;
}