Cod sursa(job #342280)

Utilizator digital_phreakMolache Andrei digital_phreak Data 21 august 2009 11:08:36
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <cstdlib>

const long mod = 1999999973;

using namespace std;

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

int main() {
	
	long N,P;
	
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	
	scanf("%ld%ld",&N,&P);
	
	printf("%ld",pow(N,P));
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}