Pagini recente » Cod sursa (job #512735) | Cod sursa (job #2763790) | Cod sursa (job #1948312) | Cod sursa (job #823922) | Cod sursa (job #2922565)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "sumdiv.in" );
ofstream fout( "sumdiv.out" );
const int MOD = 9901;
int lgpow( int a, int n ) {
int p = 1;
a %= MOD;
for ( ; n; n >>= 1 ) {
if ( n & 1 ) p = p * a % MOD;
a = a * a % MOD;
}
return p;
}
int main() {
int a, b, d = 2, res = 1;
fin >> a >> b;
while ( d * d <= a ) {
int e = 0;
while ( a % d == 0 ) {
++e;
a /= d;
}
res = (res * (lgpow( d, e * b + 1 ) - 1 + MOD)) % MOD;
res = (res * lgpow( d - 1, MOD - 2 )) % MOD;
++d;
}
if ( a != 1 ) {
res = (res * (lgpow( a, b + 1 ) - 1 + MOD)) % MOD;
res = (res * lgpow( a - 1, MOD - 2 )) % MOD;
}
fout << res;
fin.close();
fout.close();
return 0;
}