Cod sursa(job #862879)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 22 ianuarie 2013 23:47:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>
using namespace std;

#define modulo 1999999973

inline long long putere(long long n, long long p){

    long long result = 1;

    while(p){

        if(p & 1)
            result = (result*n) % modulo;

        p >>= 1;

        n = (n*n) % modulo;
    }

    return result;
}

int main(){

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

    long long n, p, rez;

    f >> n >> p;

    rez = putere (n, p);

    g << rez << '\n';

    return 0;
}