Cod sursa(job #1349915)

Utilizator Tzappy90Mihalache Constantin Tzappy90 Data 20 februarie 2015 15:58:07
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;
#define MOD 1999999973
#define ll long long int

ll fast_exp(int base, int exp) {
    ll res=1;
    while(exp>0) {
       if(exp%2==1) res=(res*base)%MOD;
       base=(base*base)%MOD;
       exp/=2;
    }
    return res;
}

long long put(long long int x, long long int y)
{
	if(y==0) return 1;
	if(y==1) return x;
	if(y%2==0) return put(x*x,y/2);
	return x*put(x*x,(y-1)/2);
}

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

	int x, y;

	in >> x >> y;
	
	out << fast_exp(x,y) << '\n';

	return 0;
}