Cod sursa(job #1073942)

Utilizator lilian_ciobanuLilian Ciobanu lilian_ciobanu Data 6 ianuarie 2014 22:34:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>

using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");

const int  k=1999999973;

long long lgput(long long a, long long n);

int main(){
	long long a,b;
	
	f>>a>>b;
	g<<lgput(a%k,b);
	
	
return 0;
}

long long lgput(long long a, long long n){
			if(n==1){
				a%=k;
				return a;
			}
			else 
				if(n%2) {
					long long t;
					a%=k;
					t=(a*a)%k;
					return (a*(lgput(t%k,(n-1)/2))%k);
				}
				else{
					long long t;
					a%=k;
					t=(a*a)%k;
					return lgput(t%k,n/2); 
				}
}