Pagini recente » Cod sursa (job #2284709) | Cod sursa (job #1342457) | Cod sursa (job #1858449) | Cod sursa (job #226965) | Cod sursa (job #804850)
Cod sursa(job #804850)
#include<fstream>
#define LL unsigned long long
#define M 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
LL a, b, p[31], d[31], k;
inline LL put(LL n, LL p)
{
LL val = 1;
for(LL i = p; i; i>>=1)
{
if(i & 1) val = (val * n ) % M;
n = (n * n) % M;
}
return val;
}
int main()
{
f>>a>>b;
LL i = 2;
while(i * i <= a)
{
if(a % i == 0)
{
p[++k] = i;
d[k] = 0;
while(a % i == 0)
{
d[k]++;
a /= i;
}
d[k] *= b;
}
++i;
}
if(a > 1)
{
p[++k] = a;
d[k] = b;
}
LL div = 1;
for(int i = 1; i <= k; ++i)
{
LL val = put(p[i], d[i] + 1) - 1;
LL inv = put(p[i] - 1, 9899);
div = (div * val * inv) % M;
}
g<<div<<'\n';
g.close();
return 0;
}