Cod sursa(job #825198)

Utilizator sleepaholicNeculaescu Theodor sleepaholic Data 27 noiembrie 2012 20:23:44
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <fstream>
using namespace std;


typedef unsigned long long ll;


ll put(ll a, ll b, ll c) {

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;
}
}

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;
}