Pagini recente » Cod sursa (job #2253576) | Cod sursa (job #986663) | Cod sursa (job #2259912) | Cod sursa (job #235213) | Cod sursa (job #2988211)
#include <fstream>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.in");
const long long MOD = 9901;
long long a, b;
long long logPut (long long a, long long b)
{
long long rez = 1;
while (b) {
if (b & 1) {
rez = (rez * a) % MOD;
b--;
}
a = (a * a) % MOD;
b /= 2;
}
return rez;
}
long long factPrim[10], expPrim[10];
long long nrPrim;
int main()
{
f >> a >> b;
if (a == 0) {
g << 0;
return 0;
}
if (a % 2 == 0) {
factPrim[++nrPrim] = 2;
while (a % 2 == 0) {
expPrim[nrPrim]++;
a /= 2;
}
}
for (long long i = 3; i * i <= a; ++i) {
if (a % i == 0) {
factPrim[++nrPrim] = i;
while (a % i == 0) {
expPrim[nrPrim]++;
a /= i;
}
}
}
long long sum = 1;
for (long long i = 1; i <= nrPrim; ++i) {
expPrim[i] *= b;
sum = ((sum * (logPut(factPrim[i], expPrim[i] + 1) - 1) ) / (factPrim[i] - 1) ) % MOD;
}
g << sum;
g.close();
f.close();
return 0;
}