Pagini recente » Cod sursa (job #3246504) | Cod sursa (job #338396) | Cod sursa (job #2817589) | Cod sursa (job #1922037) | Cod sursa (job #3166776)
#include <fstream>
using namespace std;
ifstream cin ("sumdiv.in");
ofstream cout ("sumdiv.out");
const int mod = 9901;
int Exponentiere (int baza , long long limita)
{
if (limita == 1)
{ return baza; }
if (limita & 1)
{ return baza * (Exponentiere(baza , limita - 1) + 1) % mod; }
return (baza + 1) * Exponentiere(baza , limita >> 1) % mod;
}
int main ()
{
int valoare , factor_exponent;
cin >> valoare >> factor_exponent;
int suma = 1;
for (int factor = 2 ; factor * factor <= valoare ; factor++) {
if (valoare % factor == 0)
{
int exponent = 0;
while (valoare % factor == 0) {
valoare /= factor;
exponent++;
}
suma = suma * (Exponentiere(factor % mod , 1LL * exponent * factor_exponent) + 1) % mod;
}
}
if (valoare > 1)
{ suma = suma * (Exponentiere(valoare % mod , factor_exponent) + 1) % mod; }
cout << suma;
cout.close(); cin.close();
return 0;
}