Pagini recente » Cod sursa (job #3000051) | Cod sursa (job #2062406) | Cod sursa (job #2873851) | Cod sursa (job #614070) | Cod sursa (job #2834402)
/* [A][M][C][B][N] / [K][R][I][P][6][8] */
// In the name of God
#include <bits/stdc++.h>
using namespace std;
const int mod = 104659, inf = 0x3f3f3f3f;
const char sp = ' ', nl = '\n';
ifstream fin("calcul.in");
ofstream fout("calcul.out");
long long a, ans = 1;
string b;
int c;
long long M = 1;
long long mypow(long long n, long long p) {
if (!p) return 1;
long long rt = mypow(n, p >> 1);
return ((rt * rt) % M) * (p & 1 ? n : 1) % M;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
// (A^(n + 1) - A^1) / (A - 1)
fin >> a >> b >> c;
for (int i = 1; i <= c; ++i)
M *= 10;
for (int i = 0; i < b.size(); ++i) {
for (int j = 0; j < 4; ++j) {
int val = b[i] <= '9' ? b[i] - '0' : b[i] - 'A' + 10;
ans = (ans * ans) % M;
if ((val >> (3 - j)) & 1) {
ans = (ans * a) % M;
}
}
}
ans = ((ans * a) % M - a + M) % M;
ans = (ans * mypow(a - 1, M / 10 * 4 - 1)) % M;
string x = to_string(ans);
fout << string(c - x.size(), '0') + x;
}