Pagini recente » Cod sursa (job #93318) | Cod sursa (job #2361589) | Cod sursa (job #434969) | Cod sursa (job #2899740) | Cod sursa (job #2932052)
#include <fstream>
using namespace std;
#define MOD 9901
ifstream cin ("sumdiv.in");
ofstream cout ("sumdiv.out");
int ridicput (int n, int p)
{
int put = 1;
while (p > 1)
{
if(p % 2 == 1)
put = (long long)put * n % MOD;
n = (long long)n * n % MOD;
p = p / 2;
}
return (long long)n * put % MOD;
}
int inversmod (int a)
{
return ridicput(a, MOD-2);
}
int main()
{
int a, b, div, put, ca, cb;
long long Sdiv;
cin >> a >> b; ca=a; cb=b;
Sdiv = 1;
div = 2;
while (a > 1)
{
put = 0;
while(a % div == 0)
{
put++;
a /= div;
}
put *= b;
Sdiv = Sdiv * (ridicput(div, put) - 1) * inversmod(div - 1) % MOD;
// Sdiv = Sdiv * ( (ridicput(div, put) - 1) / (div - 1) ); //% MOD;
div++;
}
Sdiv += ridicput(ca, cb);
Sdiv %= MOD;
cout << Sdiv;
return 0;
}