Pagini recente » Cod sursa (job #2351152) | Cod sursa (job #2885931) | Cod sursa (job #1237457) | Cod sursa (job #2781772) | Cod sursa (job #2766799)
#include <bits/stdc++.h>
using namespace std;
int main()
{
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int a, b;
fin >> a >> b;
vector<int> prime;
vector<bool> prim(100001, true);
for (int i = 2; i <= 100000; i++) {
if (prim[i] == true) {
prime.push_back(i);
for (int j = i * 2; j <= 100000; j += i)
prim[j] = false;
}
}
long long number = 1, sum = 1, d = 0;
while (a > 1 && prime[d] * prime[d] <= a) {
long long p = 1, ok = 0;
while (a % d == 0) {
p *= prime[d];
a /= prime[d];
ok = 1;
}
int copy = b;
if (ok == 1) {
while (copy != 0) {
p *= prime[d];
copy--;
}
sum *= (p * prime[d] - 1) / (prime[d] - 1) % 9901;
}
d++;
}
if (a != 1) {
int copy = b;
long long p = 1;
while (copy != 0) {
p *= a;
copy--;
}
sum *= ((p * a) - 1) / (a - 1) % 9901;
}
fout << sum << '\n';
return 0;
}