Cod sursa(job #1217891)

Utilizator rangerChihai Mihai ranger Data 8 august 2014 16:36:49
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
using namespace std;

ifstream cin("lgput.in");
ofstream cout("lgput.out");

#define mod 1999999973
#define ll long long
ll a,n;

ll mult(ll a, ll b)
{
    return ((a%mod)*(b%mod))%mod;
}

ll binpow(ll a, ll n)
{
    ll res=1;
    while (n)
    {
        if (n%2==1)
        {
            res=mult(res,a);
            n--;
        }
        a=mult(a,a);
        n/=2;
    }
    return res;
}
int main()
{
    cin>>a>>n;
    cout<<binpow(a,n);
    return 0;
}