Cod sursa(job #2163106)

Utilizator Alexandru_StoianStoian Sorin Alexandru Alexandru_Stoian Data 12 martie 2018 16:45:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <iostream>
#include <fstream>
#define m 1999999973

using namespace std;

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

long long a,b;

int log_exp(int x, int n){
    if(n==0)return 1;
    else{
        long long p=x;
        long long sol=1;
        for(int i=0; (1<<i)<=n; ++i){
            if( ((1<<i) & n) > 0)
                sol=(sol*p)%m;
            p=(p*p)%m;
        }
        return sol;
    }
}

int main(){
    f>>a>>b;
    g<<log_exp(a,b)<<'\n';
    return 0;
}