Cod sursa(job #146296)

Utilizator DastasIonescu Vlad Dastas Data 1 martie 2008 15:23:54
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <cstdio>

const int mod = 1999999973;

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

long long n, p;

long long pow(long long x, long long y)
{
    if ( !y )
        return 1;

    long long t = pow(x, y >> 1) % mod;

    if ( y & 1 )
        return ((t*t) % mod) * x;
    else
        return t*t;
}

int main()
{
    fscanf(in, "%lld %lld", &n, &p);
    fprintf(out, "%lld\n", pow(n, p));

	return 0;
}