Cod sursa(job #719842)

Utilizator vendettaSalajan Razvan vendetta Data 22 martie 2012 09:34:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define MOD 1999999973

using namespace std;

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

long long n;
int p;

void citeste(){

    f >> n >> p;

}

void putere(){

    long long rez = 1;


    while(p){
        if (p % 2 == 1)
            rez = (rez * n) % MOD;
        n=(n*n) % MOD;
        p /= 2;
    }
/*
    for(int i=0; (1<<i) <= p; i++){
        if ( ((1<<i) & p) > 0)
            rez = (rez * n) % MOD;
        n = (n*n) % MOD;
    }
  */
    g << rez % MOD << "\n";;

}

int main(){

    citeste();
    putere();

    f.close();
    g.close();

    return 0;

}