Cod sursa(job #1648206)

Utilizator radiogard1999Dragoi Andrei radiogard1999 Data 11 martie 2016 08:36:48
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");

int a,n;

void Rezolvare()
{
    int rez,pow;
    int k=0,m,i;
    while((1<<k)<=n) k++;
    pow=1;
    rez=a;
    m=(1<<k);
    while(rez<m)
    {
        rez=(1LL*rez*rez)%1999999973;
        pow*=2;
    }
    m=n-m;
    for(i=1;i<=m;i++)
        rez=(1LL*rez*a)%1999999973;
    fout<<rez<<"\n";
    fout.close();
}

int main()
{
    fin>>a>>n;
    fin.close();
    Rezolvare();
    return 0;
}