Cod sursa(job #2174138)

Utilizator radumihaisirbuSirbu Radu-Mihai radumihaisirbu Data 16 martie 2018 10:55:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>

using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
const int MOD = 1999999973;
long long put (long long x, long long n)
{
    if ( n == 0) return 1;
    else if ( n == 1) return x % MOD;
    else if ( n % 2 == 0) return put(x * x % MOD, n / 2)% MOD;
    else return x * put(x * x % MOD, (n - 1)/ 2) % MOD;
}
int main()
{
    long long n, x;
    fin >> x >> n;
    fout << put (x, n);
    fout.close();
    return 0;
}