Cod sursa(job #513752)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 16 decembrie 2010 20:51:19
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
# include <fstream>
# define   N   1999999973
  using namespace std;
    int putere (int a){
		return a * a;
	}
    int ridicare (int a, int n){
		if (n == 1) return a;
		if (n % 2 == 0) return putere (ridicare (a, n / 2)) % N;
		if (n % 2 == 1) return a * putere (ridicare (a, (n - 1) / 2)) % N;
	}
	int a, n;
    int main (){
		ifstream f ("lgput.in");
		ofstream g ("lgput.out");
		f >> a >> n;
		g << ridicare (a, n);
		return 0;
	}