Cod sursa(job #1784985)

Utilizator adu18sptAndrei Mircea adu18spt Data 20 octombrie 2016 19:04:06
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long MOD=1999999973;
long long r=1,a,b,rez;
 
long long put(long long a,long long b)
{
    while(b>1)
    {
        if(b%2==0)
        {
            b/=2;
            a=(a*a)%MOD;
        }
        else
        {
            b--;
            r=(r*a)%MOD;
        }
    }
    return (a*r)%MOD;
}
int main()
{
    fin>>a>>b;
    rez=put(a,b);
    fout<<rez;
    return 0;
}