Pagini recente » Cod sursa (job #2216788) | Cod sursa (job #2622975) | Cod sursa (job #3195238) | Cod sursa (job #408553) | Cod sursa (job #2608126)
#include <bits/stdc++.h>
#define mod 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
const int N = 7072;
vector <int> v;
bool w[N];
int n, m;
void pre()
{
for(int i = 2; i <= N; ++ i)
{
if(!w[i])
{
v.push_back(i);
for(int j = i + i; j <= N; j += i)
w[j] = 1;
}
}
}
int lgput(int a, int b)
{
long long r = 1;
while(b)
{
if(b % 2 == 1)
r = ( r % mod * a % mod ) % mod;
a = ( a % mod * a % mod ) % mod;
b /= 2;
}
return r;
}
int sum_div(int x)
{
long long sumdiv = 1, nr, fm;
int q = 0;
do
{
fm = 0;
nr = 1;
while(x % v[q] == 0)
{
x /= v[q];
fm ++;
nr = nr * v[q];
}
if(fm > 0)
sumdiv = ( sumdiv * (v[q] * nr - 1) / (v[q] - 1)) % mod;
q ++;
if(v[q] * v[q] > x && x > 1)
{
sumdiv = ( sumdiv * (v[q] + 1) ) % mod;
x = 1;
}
}while(x > 1);
return sumdiv;
}
int main()
{
pre();
f >> n >> m;
g << sum_div(lgput(n, m));
return 0;
}