Cod sursa(job #1515969)

Utilizator iulian_f2kGuraliuc Iulian iulian_f2k Data 2 noiembrie 2015 15:49:21
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <iostream>
#include <cstdio>
#define Mod 1999999973
using namespace std;
long long b,pw;
int lgpow(long long b,long long pw)
{
    if(pw==1)
        return b;
    long long p=lgpow(b,pw/2)%Mod;
    return ((((p*p)%Mod)*(pw%2 ? b : 1)))%Mod;
}

int main()
{
    freopen("lgput.in","rt",stdin);
    freopen("lgput.out","wt",stdout);
    cin>>b>>pw;
    if(!pw)
        cout<<1<<'\n';
    else
        cout<<lgpow(b,pw);

    return 0;
}