Cod sursa(job #2260272)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 14 octombrie 2018 18:54:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.45 kb
#include <iostream>

using namespace std;

FILE *in = fopen("lgput.in","r");
FILE *out = fopen("lgput.out","w");

unsigned int N,P;
const int m = 1999999973;

long long pow(unsigned long k)
{
    if(k==1)
        return N;

    long long x = pow(k/2) % m;

    return ((x * x) % m ) * (k % 2 == 1 ? N % m: 1) % m;
}

int main()
{
    fscanf(in, "%d %d", &N, &P);

    long res = pow(P);

    fprintf(out, "%d", res);

    return 0;
}