Cod sursa(job #1118493)

Utilizator valexVochescu Alexandru valex Data 24 februarie 2014 11:32:29
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>
using namespace std;

long long lgput(int a,int b)
{
    long long x;
    if (b==0) return 1;
    if (b==1) return a;
    if (a%2)
    {
        x=lgput(a,(b-1)/2);
        x=x*x*a;
    }
    else
    {
        x=lgput(a,b/2);
        x=x*x;
    }
    return x;
}

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    int n,p;
    scanf("%d %d",&n,&p);
    long long x=lgput(n,p);
    printf("%lld",x);
    return 0;
}