Cod sursa(job #1941986)

Utilizator SlenderSnaxOrban Abel SlenderSnax Data 27 martie 2017 18:45:29
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
int perm(int n, int p) {
	int num = 1999999973;
	int y = 1;
	if (p == 0)
		return 1;
	if (p < 0) {
		n = 1 / n;
		p = -p;
	}
	while (p > 1) {
		if (p % 2 == 0) {
			n *= n;
			p /= 2;
		}
		else {
			y *= n;
			n *= n;
			p = (p - 1) / 2;
		}
	}
	n *= y;
	return (n%num);
}
int main()
{
	int n, p;
	in >> n;
	in >> p;
	out << perm(n, p);
	return 0;
}