Cod sursa(job #1637841)

Utilizator Mr.DoomRaul Ignatus Mr.Doom Data 7 martie 2016 19:36:04
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;

#define MOD 1999999973

ifstream is("lgput.in");
ofstream os("lgput.out");

long long lgput(long long n, long long p );

int main()
{
    long long n, p;
    is >> n >> p;
    os << lgput(n, p);

    is.close();
    os.close();
    return 0;
}


long long lgput(long long n, long long p )
{
    long long sol = 1;
    for ( int i = 0; (1<<i) <= p; ++i )
    {
        if ( (1<<i) & p )
            sol = (sol * n) % MOD;
        n = (n * n) % MOD;
    }
    return sol;
}