Cod sursa(job #3310489)

Utilizator ViAlexVisan Alexandru ViAlex Data 14 septembrie 2025 12:23:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include<iostream>
#include<fstream>
using namespace std;

ifstream in("lgput.in");
ofstream out("lgput.out");

const int MOD = 1999999973;

long long fpow(long long num, long long pow) {
	long long result = 1;
	long long base = num;

	for(long long mask = 1; mask<=pow; mask = mask<<1) {
		if ((pow & mask) == mask){
			result = (result * base) % MOD;
		}
		base = (base * base) % MOD;
	}
	return result;
}

int main(){
	long long n, p;
	in>>n>>p;
	out<<fpow(n, p);
	return 0;
}