Cod sursa(job #1133045)

Utilizator DanutsDanut Rusu Danuts Data 4 martie 2014 12:38:48
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include<iostream>
#include<fstream>
#define m 1999999973
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");

long long int n,p;
long int putere(long long int n,long long int p){
	if(p==1)
		return n%m;
	else
		if(p%2==0)
			return putere((n%m)*(n%m),p/2)%m;
		else
			return (n%m)*putere((n%m)*(n%m),(p-1)/2)%m;
}
int main (){
	f>>n>>p;
	g<<putere(n,p);
	return 0;
}