Cod sursa(job #1319207)

Utilizator asavoaeigeoAsavoaei Georgiana asavoaeigeo Data 16 ianuarie 2015 19:36:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <fstream>

using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const int m = 1999999973;

int main()
{
    int n,p,i;
    fin>>n>>p;
    long long a,sol=1;
    a=n;
    for(i=0; (1<<i)<=p; i++) //pt fiecare bit din p
    {
        if(((1<<i) &p)>0) sol=(sol*a)%m; //daca bitul e 1
        a=(a*a)%m;
    }
    fout<<sol;
    return 0;
}