Pagini recente » Cod sursa (job #1816688) | Cod sursa (job #1785810) | Cod sursa (job #1713677) | Cod sursa (job #2454348) | Cod sursa (job #873678)
Cod sursa(job #873678)
#include<stdio.h>
#define mod 9901
FILE*f=fopen("sumdiv.in","r");
FILE*g=fopen("sumdiv.out","w");
int a,b;
inline int lgpow ( int a , int b ){
int s = 1,p = a%mod;
while ( b ){
if ( b & 1 ){
s = (s*p)%mod;
}
p = (p*p)%mod;
b >>= 1;
}
return s;
}
int main () {
fscanf(f,"%d %d",&a,&b);
int sol = 1;
for ( int i = 2 ; i*i <= a && a > 1 ; ++i ){
if ( !(a % i) ){
int e = 0;
while ( !(a % i) ){
++e;
a /= i;
}
int p = lgpow(i,e*b+1)-1; if ( p < 0 ) p += mod;
sol = (sol*p)%mod;
sol = (sol*lgpow(i-1,mod-2))%mod;
}
}
if ( a > 1 ){
int p = lgpow(a,b+1)-1; if ( p < 0 ) p += mod;
sol = (sol*p)%mod;
sol = (sol*lgpow(a-1,mod-2))%mod;
}
fprintf(g,"%d\n",sol);
fclose(f);
fclose(g);
return 0;
}