Cod sursa(job #1549911)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 12 decembrie 2015 21:59:14
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>

using namespace std;

unsigned long long n,p;
unsigned long long putere(unsigned long long &n,unsigned long long &p){
    unsigned long long nr = 1;
    while(p != 0){
        if(p % 2 == 1){
            p -= 1;
            nr *= n;
        }
        n = n * n;
        p /= 2;
    }
    return nr;
}
int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%llu %llu",&n,&p);
    printf("%llu ",putere(n,p));
    return 0;
}