Pagini recente » Cod sursa (job #2613221) | Cod sursa (job #1899801) | Cod sursa (job #2493854) | Cod sursa (job #30811) | Cod sursa (job #820055)
Cod sursa(job #820055)
#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 = mul(tmp, tmp, c);
if(b & 1) tmp = mul(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;
}