Cod sursa(job #2061987)

Utilizator anca.sotirAnca Sotir anca.sotir Data 9 noiembrie 2017 21:34:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#define numar 1999999973
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
long long int lgput(int n,int p)
{
    long long int b=n,produs=1;
    for(int i=0;p>>i;++i)
    {
        if((p>>i)&1)
            {
                produs*=b;
                produs%=numar;
            }
        b*=b;
        b%=numar;
    }
    return produs;
}
int main()
{
    long long int N,P;
    f>>N>>P;
    N%=numar;
    P%=numar-1;
    g<<lgput(N,P);
    return 0;
}