Pagini recente » Cod sursa (job #2451150) | Cod sursa (job #2553859) | Cod sursa (job #2175190) | Cod sursa (job #2247973) | Cod sursa (job #2663815)
#include <fstream>
#include <cstdio>
using namespace std;
ifstream cin ( "sumdiv.in" );
ofstream cout ( "sumdiv.out" );
#define MOD 9901
int main()
{
unsigned long long a, b, d, ans, p, n, ans1;
cin >> a >> b;
d = 2;
ans = 1;
while ( d * d <= a ) {
p = 0;
while ( a % d == 0 ) {
p++;
a /= d;
}
if ( p > 0 ) {
n = p * b + 1;
p = d;
ans1 = 1;
while ( n > 0 ) {
if ( n % 2 == 1 )
ans1 = ans1 * ( p % MOD ) % MOD;
p = ( p % MOD ) * ( p % MOD ) % MOD;
n /= 2;
}
if ( ans1 > 0 )
ans = ans * ( ans1 - 1 ) % MOD;
else
ans = ans * 9900 % MOD;
n = MOD - 2;
p = d - 1;
while ( n > 0 ) {
if ( n % 2 == 1 )
ans = ans * ( p % MOD ) % MOD;
p = ( p % MOD ) * ( p % MOD ) % MOD;
n /= 2;
}
}
d++;
}
if ( a > 1 ) {
n = b + 1;
p = a;
ans1 = 1;
while ( n > 0 ) {
if ( n % 2 == 1 )
ans1 = ans1 * ( p % MOD ) % MOD;
p = ( p % MOD ) * ( p % MOD ) % MOD;
n /= 2;
}
if ( ans1 > 0 )
ans = ans * ( ans1 - 1 ) % MOD;
else
ans = ans * 9900 % MOD;
n = MOD - 2;
p = a - 1;
while ( n > 0 ) {
if ( n % 2 == 1 )
ans = ans * ( p % MOD ) % MOD;
p = ( p % MOD ) * ( p % MOD ) % MOD;
n /= 2;
}
}
if ( a > 0 )
cout << ans;
else
cout << "0";
return 0;
}