Cod sursa(job #959654)

Utilizator phobosJustin Lim Kai Ze phobos Data 8 iunie 2013 14:27:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include<iostream>
#include<fstream>
using namespace std;
const int mod=1999999973;
typedef long long ll;
ll go(ll a,ll p){
	ll b=a*a;
	b%=mod;
	a%=mod;
	if(p==0)return 1;
	if(p==1)return a;
	if(!(p%2))return (go(b,p/2))%mod;
	else return (a*go(b,(p-1)/2))%mod;
}
int main(){
	ifstream in("lgput.in");
	ofstream out("lgput.out");
	ll N,P;
	in>>N>>P;
	out<<go(N,P)<<'\n';
}