Cod sursa(job #2262526)

Utilizator SweetHumanAvram Gheorghe SweetHuman Data 17 octombrie 2018 16:03:07
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <iostream>
#include <fstream>
#define  MODULO 1999999973
using namespace std;

unsigned long long n,p;
ifstream f1("lgput.in");
ofstream f2("lgput.out");

unsigned long long rezultat (unsigned long long x, unsigned long long putere){
    if(putere == 1)
        return x%MODULO;
    unsigned long long factor = 1;
    if(putere%2!=0){
        factor = x;
        putere--;
    }
    return (factor*rezultat(x*x%MODULO,putere/2))%MODULO;
}

int main(){
    f1>>n>>p;
    f2<<rezultat(n,p);
    return 0;
}