Pagini recente » Cod sursa (job #3331343) | Cod sursa (job #3342821) | Cod sursa (job #3351436) | Cod sursa (job #3309406) | Cod sursa (job #3323056)
#include <fstream>
using namespace std;
#define MOD 9901
int powlg(int a, int p){
int s, x;
s = 1;
x = a % MOD;
while (p){
if (p & 1)
s = s * x % MOD;
x = x * x % MOD;
p >>= 1;
}
return s;
}
inline int InvMod(int a){
return powlg(a, MOD);
}
int fact(int n, int a){
int x = a % MOD;
if (x == 0)
return 1;
if (x == 1)
return (n + 1) % MOD;
return (powlg(a, n + 1) + MOD - 1) * InvMod(a - 1) % MOD;
}
int main()
{
ifstream cin ("sumdiv.in");
ofstream cout ("sumdiv.out");
int a, b, d, sum, p;
cin >> a >> b;
sum = 1;
for (d=2; d*d<=a; d++)
if (a % d == 0){
p = 0;
while (a % d == 0){
p++;
a /= d;
}
sum = sum * fact(b * p, d) % MOD;
}
if (a > 1)
sum = sum * fact(b, a) % MOD;
cout << sum << '\n';
return 0;
}