Cod sursa(job #147509)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 3 martie 2008 01:52:44
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#define CONST 1999999973
#define FIN "lgput.in"
#define FOUT "lgput.out"
using namespace std;
int n,p;


void iofile(void){
        freopen(FIN,"rt",stdin);
        freopen(FOUT,"wt",stdout);
        scanf("%d%d",&n,&p);
        fclose(stdin);
}

void solve(void){
        int rest=n%CONST;
        int pw;
        for (pw=1;2*pw<=p;pw*=2){
                rest=(rest*rest)%CONST;
        }
        for (int i=pw+1;i<=p;i++){
                rest=(rest*n)%CONST;
        }
        printf("%d\n",rest);
        fclose(stdout);
}

int main(void){
        iofile();
        solve();
        return 0;
}