Pagini recente » Cod sursa (job #1442350) | Cod sursa (job #2227124) | Cod sursa (job #1476918) | Cod sursa (job #490868) | Cod sursa (job #2103571)
#include <fstream>
#define MOD 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
long long int power(long long int x, long long int p)
{
long long int rez = 1;
while (p) {
if (p & 1) rez = (rez*x) % MOD;
x = (x*x) % MOD;
p >>= 1;
}
return rez;
}
void solve(long long int a, long long int b)
{
long long int sum = 1, div, pw;
for (div = 2; div*div <= a; div++) {
if (a % div) continue;
pw = 0;
while (!a % div) {
a /= div;
pw++;
}
pw *= b;
if (!div % MOD) continue;
if (div % MOD == 1) {
sum = (sum*(pw + 1)) % MOD;
}
else {
sum = (sum*(power(div, pw + 1) - 1)*(power(div - 1, MOD - 2))) % MOD;
}
}
if (a != 1) {
if (a % MOD == 1) {
sum = (sum*(b + 1)) % MOD;
}
else if (a % MOD) {
sum = (sum*(power(a, b + 1) - 1) * power(a - 1, MOD - 2)) % MOD;
}
}
g << sum;
}
int main()
{
long long int a, b;
f >> a >> b;
solve(a, b);
f.close();
g.close();
return 0;
}