Cod sursa(job #2020858)

Utilizator UWantMyNameGheorghe Vlad Camil UWantMyName Data 11 septembrie 2017 20:55:03
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>
#define XYZ 1999999973
#define in "lgput.in"
#define out "lgput.out"
using namespace std;
ifstream fin(in);
ofstream fout(out);

long long PutereLogaritmic(long long x, long long n)
{
    long long p=1;

    while (n > 0)
    {
        if (n%2 == 1)
        {
            p = p*x %XYZ;
            n--;
        }
        x = x*x%XYZ;
        n = n/2;
    }
    return p ;
}

int main()
{
    long long N,P;

    fin >> N >> P;
    fout << PutereLogaritmic(N,P) << "\n";

    fin.close();
    fout.close();
    return 0;
}