Cod sursa(job #2702887)

Utilizator caracioni_octavianCaracioni Octavian caracioni_octavian Data 6 februarie 2021 11:16:59
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

long long n, p, mod = 1999999973;


long long pow(long long x, long long y)
{
    if (y == 0)
        return 1;
    if (y == 1)
        return x;
    if (y % 2 == 0)
        return ((pow(x, y / 2) % mod) * (pow(x, y / 2) % mod)) % mod;
    return (x * (pow(x, (y - 1) / 2) % mod) * (pow(x, (y - 1) / 2) % mod)) % mod;
}


int main()
{
    fin>>n>>p;
    fout<<pow(n, p);
    return 0;
}