Cod sursa(job #2365887)

Utilizator alex.sirbuSirbu Alexandru alex.sirbu Data 4 martie 2019 17:10:48
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;

const long long m=1999999973;

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

long long getPutere(long long n, long long k){
    if(k==1) return n%m;
    if(k==0) return 1;
    if(k%2==0){
        long long x=getPutere(n, k/2);
        return (x*x)%m;
    }
    else{
        long long x=getPutere(n, k/2);
        return (n*x*x)%m;
    }
}

int main()
{
    long long n, k;
    fin>>n>>k;
    n=n%m;
    fout<<getPutere(n, k)%m;
}