Cod sursa(job #1745676)

Utilizator delia_ioanaCeapa Delia Ioana delia_ioana Data 22 august 2016 14:07:27
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <set>
 
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");

signed long long int myPow(signed long long int n, signed long long int p) {
	if (p == 0)
		return 1;
	else if (p == 1)
		return n;
	else if (p % 2 == 0)
		return myPow((n * n) % 1999999973, p / 2);
	else return (n * myPow((n * n) % 1999999973, (p - 1) / 2)) % 1999999973;
}

int main() {
	signed long long int p, n, aux = 1999999973;
	fin >> n >> p; 
	fout << (signed long long int)(myPow(n, p) % aux);
	return 0;
}