Cod sursa(job #1726304)

Utilizator TiiberiuBujor Tiberiu-Cosmin Tiiberiu Data 7 iulie 2016 18:49:13
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <fstream>
#define Q 1999999973
using namespace std;

ifstream cin("lgput.in");
ofstream cout("lgput.out");
int ridicare(int a, int b){
    
    if(b<0) return(1/a,-b);
    else if(b==0) return 1;
    else if(b==1) return a;
    else if (b%2 == 0) return ridicare(a*a,b/2);
    else return a* ridicare(a*a,(b-1)/2);
}
int main() {
    int a,b;
    cin>>a>>b;
    cout<<ridicare(a,b) % Q;
}