Cod sursa(job #1554439)

Utilizator dago28Stoican Dragos dago28 Data 21 decembrie 2015 12:42:02
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>

using namespace std;

int n,p,r=1;

void lgput ()
{
    while (p!=1)
    {
        if (p%2!=0)
        {
            p--;
            r=r*n;
        }
        else
        {
            r=n*n;
            p/=2;
        }
    }
    while (p)
    {
        r=r*r;
        p--;
    }
}

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