Pagini recente » Cod sursa (job #1090722) | Cod sursa (job #2692677) | Cod sursa (job #327504) | Cod sursa (job #539015) | Cod sursa (job #1429205)
#include <cstdio>
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <utility>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <string>
#include <cstring>
#include <deque>
#include <list>
#include <unordered_map>
#include <unordered_set>
#define lung long long
#define toolung unsigned long long
#define mp make_pair
#define v.push (v).push_back
#define pii pair <int, int>
#define SORT(x) sort ((x).begin(), (x).end() )
using namespace std;
static const int MOD = 9901;
inline lung pizda (lung a, lung b) {
a%=MOD;
lung sol = 1;
for (; b ; b >>= 1) {
if (b & 1) sol = ( sol * a) % MOD;
a = (1LL * a * a) % MOD;
}
return sol;
}
int main(){
ifstream cin ("sumdiv.in");
ofstream cout ("sumdiv.out");
lung x, y, kush, bere_modulara, rez = 1;
cin >> x >> y;
for (int d = 2 ; d * d <= x; ++ d ) {
if (x % d ) continue ;
lung cnt = 0;
for ( ; ! (x % d) ; ++cnt, x /= d );
cnt *= y;
kush = (pizda (d, cnt + 1) - 1 ) % MOD;
bere_modulara = pizda (d - 1 , MOD - 2) % MOD;
rez*=kush;rez%=MOD;rez*=bere_modulara;rez%=MOD;
}
if (x > 1 ) {
if (rez % MOD == 1)
rez = (rez * (y + 1)) % MOD;
else {
kush = ( pizda (x, y + 1) - 1 ) % MOD;
bere_modulara = pizda(x - 1, MOD - 2) % MOD; // x ^ MOD - 2 e invers
rez*=kush;rez%=MOD;rez*=bere_modulara;rez%=MOD;
}
}
cout << rez;
return 0;
}
//I love bad bitches, that's my fucking problem
//I love bad bitche