Pagini recente » Cod sursa (job #308348) | Cod sursa (job #2095266) | Cod sursa (job #3291744) | Cod sursa (job #593774) | Cod sursa (job #3250217)
#include <stdio.h>
#define MOD 9901
int expfast(int b, int e){
int p = 1;
while(e){
if(e%2) p = p*b%MOD;
b = b*b%MOD;
e/=2;
}
return p;
}
int invmod(int val){
return expfast(val, MOD-2);
}
int main(){
int a, b;
FILE *fin, *fout;
fin = fopen("sumdiv.in", "r");
fscanf(fin, "%d%d", &a, &b);
fclose(fin);
int sum = 1;
int d = 2;
while(d*d<=a){
int exp =0;
while(!(a%d)){
exp++;
a/=d;
}
if(exp){
printf("%d %d\n", d, exp);
sum = sum*(expfast(d, exp*b+1)-1)%MOD*invmod(d-1)%MOD;
}
d++;
}
if(a>1){
sum = sum*(expfast(a, 1+b)-1)%MOD*invmod(a-1)%MOD;
}
fout = fopen("sumdiv.out", "w");
fprintf(fout, "%d\n", sum);
fclose(fout);
return 0;
}