Cod sursa(job #3197934)

Utilizator tanaseanualexiaAlexia Tanaseanu tanaseanualexia Data 27 ianuarie 2024 18:10:57
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.46 kb
#include <iostream>
#include <cmath>
#include <fstream>

using namespace std;

long long int bigmod (long long int a, long long int p) {
	const int m = 1999999973;
	if (p == 0)	return 1; 

	if (p % 2 == 1) {
		return ((a % m) * (bigmod(a, p - 1))) % m; 
	}
	else {
		long long c = bigmod(a, p / 2); 
		return ((c % m) * (c % m)) % m;
	}
}

int main() {
	long long int n, p;
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");

	fin >> n >> p;
	fout << bigmod(n, p);
}