Pagini recente » Cod sursa (job #3270281) | Cod sursa (job #3261962) | Cod sursa (job #2177257) | Cod sursa (job #3262865) | Cod sursa (job #3284281)
#include <fstream>
using namespace std;
const int MOD = 9901;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int s = 1;
int powlg(int a, int b)
{
int val = 1;
while(b)
{
if(b & 1) val = val * a % MOD;
a = a * a % MOD;
b >>= 1;
}
return val;
}
inline int invMod(int x)
{
return powlg(x, MOD - 2);
}
void add(int d, int n)
{
int x = d % MOD;
if(!x) return;
if(x == 1) s = s * (n + 1) % MOD;
else s = s * (powlg(x, n + 1) - 1) % MOD * invMod(x - 1) % MOD;
}
int main()
{
int a, b, p;
fin >> a >> b;
for(int d = 2; d * d <= a; ++d)
if(a % d == 0)
{
p = 0;
do
{
++p;
a /= d;
}
while(a % d == 0);
add(d, b * p);
}
if(a > 1) add(a, b);
fout << s;
return 0;
}