Cod sursa(job #146299)

Utilizator DastasIonescu Vlad Dastas Data 1 martie 2008 15:25:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 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 (long long)((t*t) % mod) * x;
    else
        return (long long)t*t;
}

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

	return 0;
}