Cod sursa(job #2035022)

Utilizator mitza23Mihai Grebla mitza23 Data 8 octombrie 2017 20:50:40
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream f("lgput.in");
    ofstream g("lgput.out");
    int a,b,c=0,d=2,cb;
    long long int rez=1;
    f>>a>>b;
    cb=b;
    if(b==1){
        rez=a;
    }
    if(b==0)
        rez=1;
    if(b==0&&a==0)
        rez=0;
    if(b>1){
        while(b>1){
            b=b/2;
            c++;
        }
        rez=a*a;
        //cout<<c<<" c"<<endl;
        for(int i=0;i<c-1;i++){
            rez*=rez;
            d*=2;
        }
        //cout<<d<<" d"<<endl;
        //cout<<cb-d<<" cb-d"<<endl;
        for(int i=0;i<(cb-d);i++){
            rez*=a;
        }
    }
    long long int mod=1999999973
    g<<rez%mod;


}