Cod sursa(job #1082185)

Utilizator OctaDuiu Octavian Octa Data 14 ianuarie 2014 11:57:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include<cstdio>
#define mod 1999999973
using namespace std;

int main()
{
    freopen("lgput.in","r",stdin);freopen("lgput.out","w",stdout);

    long long n,p;
    scanf("%lld %lld",&n,&p);

    long long x=1;
    while(p)
    {
        if(!(p%2)) n=(n*n)%mod,p/=2;
        else
          x=((x%mod)*(n%mod))%mod,--p;
    }

    printf("%lld",x);

    return 0;
}