Pagini recente » Cod sursa (job #2439937) | Cod sursa (job #1184108) | Cod sursa (job #2939531) | Cod sursa (job #1490589) | Cod sursa (job #1809052)
#include<fstream>
#define MOD 9901
#define DIM 8000
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
long long a, b, x[DIM], k, c;
long long sol, invsmod;
char w[DIM + 5];
long long lgput( long long x, long long p ){
long long r = 1;
while( p != 0 ){
if( p % 2 == 1 ){
r = r * x % MOD;
}
x = x * x % MOD;
p /= 2;
}
return r % MOD;
}
int main(){
fin >> a >> b;
w[0] = w[1] = 1;
for( long long i = 2; i <= DIM; i++ ){
if( w[i] == 0 ){
x[++k] = i;
for( long long j = i + i; j <= DIM; j+= i ){
w[j] = 1;
}
}
}
c = a;
sol = 1;
for( long long i = 1; i <= k && x[i] * x[i] <= a && c != 1; i++ ){
long long e = 0;
while( c % x[i] == 0 ){
e++;
c /= x[i];
}
if( e != 0 ){
long long r = ( lgput( x[i], e * b + 1 ) - 1 ) % MOD;
invsmod = lgput( x[i] - 1, MOD - 2 );
sol = sol * r % MOD * invsmod % MOD;
}
}
if( c != 1 ){
long long r = ( lgput( c, b + 1 ) - 1 ) % MOD;
invsmod = lgput( c - 1, MOD - 2 );
sol = sol * r % MOD * invsmod % MOD;
}
while( sol < 0 ){
sol += MOD;
}
fout << sol << "\n";
return 0;
}