Cod sursa(job #330910)

Utilizator szabotamasSzabo Tamas szabotamas Data 11 iulie 2009 23:31:37
Problema Ridicare la putere in timp logaritmic Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>

using namespace std;

#define mod 1999999973
long long n,p;

long long lg (long long n, long long p){
	if (p==0) return 1;
	else
		if (!p%2){
			long long k=lg(n,p/2);
			return (k%mod*k%mod)%mod;
		}
		else {
			long long k=lg(n,p-1);
			return (k*n)%mod;
		}
}

int main(){
	freopen ("lgput.in", "r", stdin);
		scanf("%ld %ld", &n, &p);
	fclose(stdin);
	freopen ("lgput.out", "w", stdout);
		printf("%ld", lg(n,p)%mod);
	fclose(stdout);
	return 0;
}