Cod sursa(job #1938464)

Utilizator FrequeAlex Iordachescu Freque Data 24 martie 2017 20:22:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MOD = 1999999973;

long long int ridica(long long int n, long long int p)
{
    if (p == 1)
        return n;
    if (p % 2 == 0)
    {
        long long int i = ridica(n, p / 2) % MOD;
        return i * i;
    }
    long long int i = ridica(n, p / 2) % MOD;
    return i * i * n % MOD;
}

int main()
{
    long long int n, put;
    fin >> n >> put;
    fout << ridica(n, put);
    return 0;
}