Pagini recente » Cod sursa (job #1532348) | Cod sursa (job #1542423) | Cod sursa (job #481519) | Cod sursa (job #271469) | Cod sursa (job #3319653)
#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
const int MOD = 9901;
int expmod(int a, int k)
{
int p = 1;
while (k > 0)
{
if (k % 2 == 1)
{
p *= a;
p %= MOD;
}
a *= a;
a %= MOD;
k /= 2;
}
return p;
}
int inv_mod(int a)
{
return expmod(a, MOD - 2);
}
int sumdiv(int n)
{
int divv = 2, put = 0, allput = 1;
while (n > 1)
{
while (n % divv == 0)
{
n /= divv;
put ++;
}
if (put > 0)
{
allput *= (expmod(divv, put + 1) - 1) * inv_mod(divv - 1);
allput %= MOD;
}
divv ++;
put = 0;
if (divv * divv > n)
divv = n;
}
return allput;
}
signed main()
{
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
int a, b; cin >> a >> b;
int c = expmod(a, b);
cout << sumdiv(c);
}