Cod sursa(job #2787193)

Utilizator Oprea_IrinaIrina Oprea Oprea_Irina Data 22 octombrie 2021 18:00:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>

using namespace std;

long long pow(int a, int n);

const int mod = 1999999973;

int main()
{
    ifstream cin("lgput.in");
    ofstream cout("lgput.out");

    int a, n;
    cin >> a >> n;
    cout << pow(a, n);

    return 0;
}

long long pow(int a, int n)
{
    if(n == 1)
    {
        return a;
    }
    long long b;
    b = pow(a, n/2);
    if (n%2 == 0)
    {
        return (b*b) % mod;
    }
    else
    {
        return ((b*b) % mod) * a%mod;
    }

}