Cod sursa(job #1692608)

Utilizator dominiciorgandaDominic Iorganda dominiciorganda Data 21 aprilie 2016 11:54:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <cstdio>
#define MOD 1999999973
using namespace std;
long long k,i,m,x,j;
int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%lld%lld",&x,&m);
    i=x%MOD;
    for(k=m,j=1;k!=1;)
    {
        if(k%2==0)
        {
            i*=i;
            i%=MOD;
            k/=2;
        }
        else
        {
            j*=i;
            j%=MOD;
            k--;
        }
    }
    printf("%lld\n",((j%MOD)*(i%MOD)%MOD));
    return 0;
}