Cod sursa(job #1385485)

Utilizator scorpionmkBancila Petru Armand scorpionmk Data 11 martie 2015 23:48:11
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<iostream>
#include<time.h>
#include<fstream>
using namespace std;
ifstream in("lgput.in");
ifstream out("lgput.out");
unsigned long long pow(unsigned long long x/*baza*/, unsigned long long n/*exponent*/, unsigned long long mod/*modulo*/){
    if (n==0)      return 1;
    else if (n==1) return x%mod;
    else if (n%2==0){
        unsigned long long t = pow(x,n/2,mod)%mod;
        return (t * t)%mod;
    }else{
        unsigned long long t = pow(x,n/2,mod)%mod;
        return ((t * t)%mod * x)%mod;
    }
}
int main(){
    in<<N<<P;
    out<<pow(N,P,1999999973);
}