Pagini recente » Cod sursa (job #482826) | Cod sursa (job #2535751) | Cod sursa (job #1737056) | Cod sursa (job #683784) | Cod sursa (job #1089940)
#include <fstream>
#define MOD 9901
using namespace std;
int A, B, sol = 1;
inline int LgPut(int baz, int put)
{
int p = 1;
while(put > 0)
{
if(put % 2 == 1)
{
p = (1LL * p * baz) % MOD;
put--;
}
baz = (1LL * baz * baz) % MOD;
put /= 2;
}
return p;
}
int main()
{
int i, Exp = 0, aux;
ifstream fin("sumdiv.in");
fin >> A >> B;
fin.close();
if(A % 2 == 0)
{
while(A % 2 == 0)
{
Exp++;
A /= 2;
}
Exp *= B;
sol = (1LL * (LgPut(2, Exp + 1) - 1 + MOD) * LgPut(2 - 1, MOD - 2)) % MOD;
}
for(i = 3; i * i <= A; i += 2)
{
if(A % i == 0)
{
Exp = 0;
while(A % i == 0)
{
Exp++;
A /= i;
}
Exp *= B;
aux = (1LL * (LgPut(i, Exp + 1) - 1 + MOD) * LgPut(i - 1, MOD - 2)) % MOD;
sol = (1LL * sol * aux) % MOD;
}
}
ofstream fout("sumdiv.out");
fout << sol << "\n";
fout.close();
return 0;
}