Pagini recente » Cod sursa (job #1990157) | Cod sursa (job #2569819) | Cod sursa (job #2157883) | Cod sursa (job #1302896) | Cod sursa (job #391194)
Cod sursa(job #391194)
#include <fstream>
using namespace std;
const int MOD = 9901;
ifstream fin ("sumdiv.in");
ofstream fout ("sumdiv.out");
long long A, B;
long long S = 1;
long long pow(long long x, long long p)
{
long long sol = 1;
for(; p; p >>= 1)
{
if(p & 1)
sol = (sol * x) % MOD;
x = (x * x) % MOD;
}
return sol;
}
inline int make(int i, int p)
{
if(i % MOD == 1)
return p*B + 1;
return ((pow(i, 1LL*p*B+1) + MOD - 1) * (pow(i-1, MOD-2)) % MOD);
}
int main()
{
fin >> A >> B;
long long a = A;
for(int i = 2; 1LL*i*i <= A; ++i)
{
int p = 0;
while(a % i == 0)
a /= i, ++p;
if(p)
S *= make(i, p),
S %= MOD;
}
if(a > 1)
S *= make(a, 1),
S %= MOD;
fout << S;
}