Cod sursa(job #2145753)
Utilizator | Data | 27 februarie 2018 16:35:50 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <fstream>
#define MAX 1999999973
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
long long a,b;
long long putere(long long a,long long b){
long long rez = 1;
while(b){
if(b % 2 == 0){
a *= a;
b /= 2;
}else{
rez *= a % MAX;
b--;
}
}
return rez;
}
int main()
{
in>>a>>b;
out<<putere(a,b);
return 0;
}