Pagini recente » Cod sursa (job #1128386) | Cod sursa (job #1456919) | Cod sursa (job #1930692) | Cod sursa (job #1635594) | Cod sursa (job #3250218)
#include <stdio.h>
#define MOD 9901
long long expfast(long long b, long long e){
long long p = 1;
while(e){
if(e%2) p = p*b%MOD;
b = b*b%MOD;
e/=2;
}
return p;
}
long long invmod(long long val){
return expfast(val, MOD-2);
}
int main(){
long long a, b;
FILE *fin, *fout;
fin = fopen("sumdiv.in", "r");
fscanf(fin, "%lld%lld", &a, &b);
fclose(fin);
long long sum = 1;
long long d = 2;
while(d*d<=a){
long long exp =0;
while(!(a%d)){
exp++;
a/=d;
}
if(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, "%lld\n", sum);
fclose(fout);
return 0;
}