Cod sursa(job #1220290)

Utilizator ptquake10ptquake10 ptquake10 Data 17 august 2014 00:49:08
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
#include <algorithm>
#include <fstream>
using namespace std;
#define inf 0xfffffff
#define MOD 1999999973

long long n, p;

long long pow(long long p) {
	if (p == 0) {
		return 1;
	} else
	if (p == 1) {
		return n;
	} else {
		long long r = pow(p/2);
		if (p%2) {
			return (r * r * n) % MOD;
		} else {
			return (r * r) % MOD;
		}
	}
}

int main() {
	
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	
	cin >> n >> p;
	
	cout << pow(p);
		
	return 0;
}