Cod sursa(job #1264228)

Utilizator RaulBodrogeanMircea-Raul Bodrogean RaulBodrogean Data 15 noiembrie 2014 16:58:36
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>
using namespace std;
ifstream in ("lgput.in");
ofstream out ("lgput.out");
long long c=2000000000-27;
long long f(long long a,long long b)
{
    if(b==0)
    {
        return 1;
    }
    if(b==1)
    {
        return a%c;
    }
    if(b%2==0)
    {
        long long aux=f(a,b/2);
        return (aux*aux)%c;
    }
    if(b%2==1)
    {
        return (f(a,b-1)*a)%c;
    }
}
int main()
{
    int n,p;
    in>>n>>p;
    out<<f(n,p);
    return 0;
}