Cod sursa(job #1453982)

Utilizator petru.cehanCehan Petru petru.cehan Data 25 iunie 2015 11:02:01
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");

int expo(int a, int b){
    if (b==1)
        return a;
    if (b==2)
        return a*a;

    if (b%2==0){
            return expo(expo(a,b/2),2);
    }
    else{
        return a*expo(expo(a,(b-1)/2),2);
    }
}

int main ()
{
  long int N , P;
  fin>>N>>P;
  long int R;
  long int exp = expo (N,P) ;
  R = exp % 1999999973 ;
  fout << R;
  return 0;
}