Cod sursa(job #1671917)

Utilizator alxi.2001Alex Ionescu alxi.2001 Data 2 aprilie 2016 11:34:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;
const int mod=1999999973;

/*
long long logputere(long long baza, int exp)
{
if (exp==0)
  return 1LL;
if (exp%2==0)
  return logputere(baza*baza, exp/2)%1999999973;
return logputere(baza*baza, exp/2)*baza%1999999973;
}
*/

int lgpow(int a, int n)
{
if (n==0)
  return 1;
int semipow=lgpow(a,n/2);
semipow=((long long)semipow*semipow)%mod;
if (n%2==0)
  return semipow;
return ((long long)semipow*a)%mod;
}

int main()
{
ifstream in("lgput.in");
ofstream out("lgput.out");
int a,n;

in>>a>>n;
out<<lgpow(a,n)<<'\n';

in.close();
out.close();
}