Pagini recente » Cod sursa (job #3137858) | Cod sursa (job #298456) | Cod sursa (job #2109373) | Cod sursa (job #2171332) | Cod sursa (job #2745708)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
string NumeFisier = "date";
ifstream fin(NumeFisier + ".in");
ofstream fout(NumeFisier + ".out");
typedef unsigned long long int ull;
long long MOD = 9901;
long long A, B;
long long fastexpo(long long baza, long long exp)
{
long long rez = 1LL;
while (exp)
{
if (exp % 2LL == 1LL)
rez =rez * baza % MOD;
baza =baza * baza % MOD;
exp >>= 1LL;
}
return rez;
}
long long SUMADIV(long long numar)
{
long long sumadiv = 1;
long long i = 2;
while (numar > 1)
{
long long exp = 0;
while (numar % i == 0)
{
numar /= i;
exp++;
}
if (exp)
sumadiv *= (fastexpo(i, B * exp + 1) - 1LL) % MOD / (i - 1LL) % MOD;
i++;
if (i * i > numar)
i = numar;
}
return sumadiv;;
}
int main()
{
fin >> A >> B;
fout << SUMADIV(A);
}