Cod sursa(job #789862)

Utilizator cbanu96Banu Cristian cbanu96 Data 19 septembrie 2012 17:49:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <iostream>
#include <fstream>

#define MOD 1999999973

using namespace std;
int main()
{
    unsigned int i, n, p;
    long long sol = 1, x;
    ifstream f("lgput.in");
    f >> n >> p;
    x = n;
    for ( i = 0; (1<<i) <= p; ++i)
    {
        if (((1<<i) & p) > 0)
            sol = (sol * x) % MOD;
        x = (x*x) % MOD;
    }
    f.close();
    ofstream g("lgput.out");
    g << sol << '\n';
    g.close();
    return 0;
}