Pagini recente » Cod sursa (job #2050025) | Cod sursa (job #2701013) | Cod sursa (job #2685908) | Cod sursa (job #2348694) | Cod sursa (job #1913956)
#include <fstream>
using namespace std;
const long long MOD = 9901;
ifstream f ("sumdiv.in");
ofstream g ("sumdiv.out");
long long S = 1, n, b;
long long pow (long long a, long long p)
{
long long x = 1;
while (p > 0)
if (p % 2 == 0)
{
a = (a * a) % MOD;
p /= 2;
}
else
{
x = (x * a) % MOD;
p--;
}
return x;
}
void add (long long x, long long n)
{
if (x == 0)
S = S * pow (MOD - 1, MOD - 1) % MOD;
else if (x == 1)
S = S * (n + 1) % MOD;
else S = S * (pow (x, n + 1) + MOD - 1) % MOD * pow ( (x + MOD - 1) % MOD, MOD - 2) % MOD;
}
int main()
{
long long i, p;
f >> n >> b;
for (i = 2; i * i <= n; i++)
if (n % i == 0)
{
for (p = 0; n % i == 0; p++, n /= i);
add (i % MOD, b * p);
}
if (n != 1) add (n % MOD, b);
g << S;
}