Cod sursa(job #2000538)

Utilizator zvonTutuldunsa Voronokda zvon Data 14 iulie 2017 00:53:58
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>
#define MOD 1999999973
 
using namespace std;

long long ridicare(long long a, long long p) {
	long long rez = 1;
	while (p) {
		if (p & 1) {
			rez = (rez * (a % MOD)) % MOD;
			p -= 1; 
		}
		a = ((a % MOD) * (a % MOD)) % MOD;
		p >>= 1;
	}
	return rez;
}
 
int main() {
    long long n;
    long long p;
    ifstream fi("lgput.in");
    ofstream fo("lgput.out");
 
    fi >> n >> p;
    fo << ridicare(n, p);
    fi.close();
    fo.close();
    return 0;
}