Pagini recente » Cod sursa (job #272983) | Cod sursa (job #2020732) | Cod sursa (job #1553032) | Cod sursa (job #1203936) | Cod sursa (job #1505993)
#include <cstdio>
#define MOD 9901
inline int lgput(int a, int n){
int r=1;
while(n>0){
if(n%2==1){
r=(r*a)%MOD;
}
n/=2;
a=(a*a)%MOD;
}
return r;
}
inline int suma(int x, int y){
int a=y/(MOD-1), b=y%(MOD-1), rasp=1, e=1, sum=1;
for(int i=1; i<MOD; i++){
e=(e*(long long)x)%MOD;
sum=(sum+e)%MOD;
if(i==b){
rasp=sum;
}
}
rasp=(rasp*(long long)lgput(sum, a))%MOD;
return rasp;
}
int main(){
int a, b, ans, p, s;
FILE *fin, *fout;
fin=fopen("sumdiv.in", "r");
fout=fopen("sumdiv.out", "w");
fscanf(fin, "%d%d", &a, &b);
ans=1;
p=2;
while(p*p<=a){
if(a%p==0){
a/=p;
s=1;
while(a%p==0){
a/=p;
s++;
}
ans=(suma(p, s*b)*ans)%MOD;
}
p++;
}
if(a>1){
ans=(suma(a, b)*ans)%MOD;
}
fprintf(fout, "%d\n", ans);
fclose(fin);
fclose(fout);
return 0;
}