Pagini recente » Cod sursa (job #2457439) | Cod sursa (job #1577350) | Cod sursa (job #2368953) | Cod sursa (job #2392401) | Cod sursa (job #820058)
Cod sursa(job #820058)
#include <fstream>
using namespace std;
typedef unsigned long long ll;
//preconditii: a, b >= 0; c > 0
ll put(ll a, ll b, ll c) {
//invariant de reducere a spatiului: b' < b
if(b == 0) return 1 % c;
else {
ll tmp = put(a, b >> 1, c);
tmp = (tmp * tmp) % c;
if(b & 1) tmp = (tmp * a) % c;
return tmp;
}
}
//postconditii: valoarea de return este egala cu a^b mod c
int main() {
const ll MOD = 1999999973ll;
ll n, p;
ifstream f("lgput.in");
ofstream g("lgput.out");
f >> n >> p;
g << put(n, p, MOD) << endl;
f.close();
g.close();
return 0;
}