Cod sursa(job #3195406)

Utilizator tanaseanualexiaAlexia Tanaseanu tanaseanualexia Data 20 ianuarie 2024 18:25:44
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.44 kb
#include <iostream>
#include <fstream>
using namespace std;

const int m = 1999999973;

int exp_rapida(int x , int n) {
	if (n == 0) {
		return 1;
	} else if (n % 2 == 0) {
		return exp_rapida(x * x, n / 2);
	} else if (n % 2 == 1) {
		return x * exp_rapida(x * x, (n - 1) / 2);
	} else {
		return 0;
	}
}

int main() {
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");
	int n, p;
	fin >> n >> p;
	fout << exp_rapida(n, p) % m;

	return 0;
}