Cod sursa(job #342285)

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

const long long mod = 1999999973;

using namespace std;

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

long long N,P;

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