Pagini recente » Cod sursa (job #776516) | Rating Grigorosoaia Florin (Praetor) | Cod sursa (job #2324052) | Cod sursa (job #1822291) | Cod sursa (job #2998741)
#include <iostream>
#include <fstream>
using namespace std;
const int MOD = 9901;
long long A, B, d, S;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
long long exponentiere_rapida(long long baza, long long exp)
{
long long val = 1;
while(exp)
{
if(exp % 2 != 0)
val = val * baza % MOD;
baza = baza * baza % MOD;
exp /= 2;
}
return val;
}
long long InvMod(int nr)
{
return exponentiere_rapida(nr, MOD - 2);
}
int main()
{
in >> A >> B;
S = 1;
for(d = 2; d * d < A; d++)
if(A % d == 0)
{
int exp = 0;
long long pow = 1;
while(A % d == 0)
{
exp++;
A /= d;
pow = pow * d % MOD;
}
S = (S * exponentiere_rapida(pow, B) % MOD * d + MOD - 1) % MOD;
S = S * InvMod(d - 1) % MOD;
}
if(A > 1)
{
S = (S * exponentiere_rapida(A, B + 1) % MOD + MOD - 1) % MOD;
S = S * InvMod(A - 1) % MOD;
}
out << S;
in.close();
out.close();
return 0;
}