Cod sursa(job #2673344)

Utilizator teofilotopeniTeofil teofilotopeni Data 16 noiembrie 2020 16:30:32
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <fstream>
using namespace std;

//  Sandro's Biography

long long Putere(long long n, long long i) {
    if (i < 0) return Putere(1 / n, -i);
    else if (i == 0) return 1;
    else if (i == 1) return n ;
    else if (i % 2) return n * Putere(n * n % 1999999973, i / 2);
    else return Putere(n * n % 1999999973, i / 2);
}

int main() {
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	long long n, m;
	scanf("%d %d", &n, &m);
	long long sol = Putere(n, m);
	printf("%lld\n", sol % 1999999973); // Afisam solutia
}