Pagini recente » Cod sursa (job #3217453) | Cod sursa (job #541082) | Cod sursa (job #5998) | Cod sursa (job #1604125) | Cod sursa (job #2757828)
#include <fstream>
#define MOD 9901
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
int lgput( int a, int b ) {
int put = 1;
while ( b > 0 ) {
if ( b % 2 == 1 )
put = 1LL*put * a % MOD;
a = 1LL*a * a % MOD;
b /= 2;
}
return put;
}
int main() {
int a, n, e, d, var, imp, rez;
cin>>a>>n;
d = 2;
rez = 1;
while (d * d <= a) {
e = 0;
while(a % d == 0) {
e++;
a /= d;
}
if( e ) {
if (d%MOD==1) {
rez = ( 1LL*rez * ( e * n + 1 ) ) % MOD;
} else {
e*=n;
e++;
var = lgput( d, e );
if( var % MOD == 0 )
var = MOD - 1;
else
var--;
imp = lgput( d - 1, MOD - 2 );
rez = 1LL*rez * var * imp % MOD;
}
}
d++;
}
if( a > 1 ) {
if (a%MOD==1) {
rez=(1LL*rez*(n+1))%MOD;
} else{
e=1;
e*=n;
e++;
var=lgput(a,e);
if( var % MOD == 0 )
var=MOD-1;
else
var--;
imp = lgput(a-1,MOD-2);
rez=1LL*rez*var*imp%MOD;
}
}
cout<<rez;
return 0;
}