Cod sursa(job #656957)

Utilizator ion824Ion Ureche ion824 Data 5 ianuarie 2012 16:01:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#define MOD 1999999973
using namespace std;
/*
int  pow1(long long a,long long b){
    long long aux;
    if(b==0)return 1;
    else
      if(b%2==0){
             aux=pow1(a,b/2);
             return ((aux%MOD)*(aux%MOD))%MOD;
             }
        else return ((a%MOD)*(pow1(a,b-1)%MOD))%MOD;         
}*/

int pow(long long x, long long p){
   long long rez = 1; x %= MOD;
     for(; p; p >>= 1) {
       if(p & 1) {
         rez *= x;
         rez %= MOD;
                }
        x *= x;
        x %= MOD;
       }
   return rez;
}

int main(void){
    ifstream fin("lgput.in");
    ofstream fout("lgput.out");
    long long  n,p,k;
    fin>>n>>p; fin.close();
    k=pow(n,p);
    fout<<k; fout.close();
 return 0;   
}