Pagini recente » Cod sursa (job #2793969) | Diferente pentru home intre reviziile 374 si 373 | Istoria paginii runda/listare-onis | Cod sursa (job #2007573) | Cod sursa (job #1083642)
#include <iostream>
#include <fstream>
#define ll long long
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
const int MOD = 9901;
ll A, B, sd = 1;
int POW(int x, int p)
{
int rez = 1; x %= MOD;
for(; p; p >>= 1)
{
if(p & 1)
{
rez *= x;
rez %= MOD;
}
x *= x;
x %= MOD;
}
return rez;
}
int main()
{
fin >> A >> B;
for(int i=2; i * i <= A; i++)
{
if(A % i) continue;
ll fr = 0;
while(A % i == 0)
{
A /= i;
fr += B;
}
ll p1 = (POW(i, fr + 1) - 1 + MOD) % MOD;
ll p2 = (POW(i - 1, MOD - 2)) % MOD;
sd = (((sd * p1) % MOD) * p2) % MOD;
}
if(A > 1)
{
ll p1 = (POW(A, B + 1) - 1 + MOD) % MOD;
ll p2 = (POW(A - 1, MOD - 2)) % MOD;
sd = (((sd * p1) % MOD) * p2) % MOD;
}
fout<<sd;
return 0;
}