Cod sursa(job #1602558)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 16 februarie 2016 20:21:13
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#include <cmath>
#define InFile  "lgput.in"
#define OutFile "lgput.out"
#define MOD 1999999973

using namespace std;

ifstream fin  (InFile);
ofstream fout (OutFile);

unsigned long long int N, P;

unsigned long long int x;
unsigned long long int i;

unsigned long long int sol;

int main ()
{
    fin >> N >> P;
    sol = 1;
    x = N;
    while (P)
    {
        if (P%2 == 1)
            sol = (sol*x) % MOD;
        x = (x*x) % MOD;
        P = P/2;
    }
    fout << sol;
    return 0;
}