Pagini recente » Cod sursa (job #2523437) | Cod sursa (job #1035236) | Cod sursa (job #721241) | Cod sursa (job #257214) | Cod sursa (job #1982245)
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int a, b;
int lgput(int base, int exp)
{
int rez = 1;
while (exp)
{
if (exp % 2)
{
rez *= base;
exp--;
}
base *= base;
exp /= 2;
}
return rez;
}
void sum(int a,int b)
{
int i,s = 1;
int d=0, p;
while (a % 2 == 0)
{
a /= 2;
d++;
}
if (d)
s *= lgput(2, d*b + 1) - 1;
int r = sqrt(a);
for (p = 3;p <= r;p += 2)
{
d = 0;
while (a%p == 0)
{
a /= p;
d++;
}
if (d)
{
s *= (lgput(p, d*b + 1) - 1) / (p - 1);
r = sqrt(a);
}
}
if (a != 1)
s *= (lgput(a, b + 1) - 1) / (a - 1);
g << s % 9901 << "\n";
}
int main()
{
f >> a >> b;
sum(a, b);
f.close();
g.close();
return 0;
}