Cod sursa(job #1083865)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 16 ianuarie 2014 15:15:09
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<cstdio>
#include<cmath>
FILE *in,*out;
const long long MOD=1999999973;
long long int n,p;
long long int dub(long long int x)
{
    return (x*x)%MOD;
}
long long int pow(long long int a, long long int b)
{
    if(!b)
        return 1;
    if(b==1)
        return a;
    if(!(b%2))
        return dub(pow(a, b / 2));
    return (a*dub(pow(a,b /2)))%MOD;
}
int main ()
{
    in=fopen("lgput.in","rt");
    fscanf(in,"%lld%lld",&n,&p);
    fclose(in);
    out=fopen("lgput.out","wt");
    fprintf(out,"%lld", pow(n,p));
    fclose(out);
    return 0;
}