Pagini recente » Cod sursa (job #2774963) | Cod sursa (job #3130904) | Cod sursa (job #2917472) | Cod sursa (job #2328292) | Cod sursa (job #3163529)
#include <fstream>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
int pow(int x, long long p)
{
x %= 9901;
int r = 1;
for(; p; p >>= 1)
{
if(p & 1)
r = (r * x) % 9901;
x = (x * x) % 9901;
}
return r;
}
int make(int i, int p, int b)
{
if(i % 9901 == 1)
return p*b + 1;
return (pow(i, 1LL*p*b+1) + 9901 - 1) * (pow(i-1, 8999)) % 9901;
}
int main()
{
int a, b, s=1;
fin >> a >> b;
int ca = a;
for(int i = 2; i*i <= a; ++i)
{
int p = 0;
while(ca % i == 0)
{
ca /= i;
p++;
}
if(p)
s*=make(i, p, b),
s%=MOD;
}
if(ca > 1)
r*=make(ca, 1, b),
r%=9901;
fout << r;
return 0;
}