Cod sursa(job #1301751)

Utilizator cristina2689Cristina Opriceana cristina2689 Data 26 decembrie 2014 12:59:09
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<vector>
#include<iostream>
#include<fstream>

#define max 1999999973

using namespace std;


int fast_power(int p, int q) {
   int result = 1; 
	while(q > 0) {
	        if(q % 2){
		        result = ((result % max) *(p % max)) % max;
		        q--;
	        }
	        p = (((p % max)*(p % max)) % max);
            q = q >> 1;
    }
	return result;
}
int main(){
	
	int n, p;
	ifstream in; in.open("lgput.in");
	ofstream out; out.open("lgput.out");
	
	in >> n; in >> p;
	cout << n << " " << p << endl;
	out << fast_power(n,p);
	
	out.close();
	in.close();	
	return 0;
}