Cod sursa(job #2305098)

Utilizator st_marianStoica Marian st_marian Data 19 decembrie 2018 07:21:50
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
int baza, putere;
int p;
int main()
{
    fin>>baza>>putere;
    p=1;
    int y=1;
    while(putere>1)
    {
        if(putere%2==0)
        {
            baza=(baza*baza)%1999999973;
            putere/=2;
        }
        else
        {
            y=(baza*y)%1999999973;
            baza=(baza*baza)%1999999973;
            putere=(putere-1)/2;
        }

    }
    fout<<baza*y<<'\n';
    return 0;
}