Cod sursa(job #1606354)

Utilizator danyvsDan Castan danyvs Data 20 februarie 2016 10:10:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

#define mod 1999999973

using namespace std;

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

long long Putere (long long n, long long p)
{
    if  (p == 1) return n;
    else
        if(p % 2 == 0) return Putere ((n * n) % mod, p / 2) % mod;
        else return (n * Putere((n * n) % mod, p / 2)) % mod;
}

int main()
{
    long long n, p;
    fin >> n >> p;
    fout << Putere(n, p) << "\n";
    fin.close();
    fout.close();
    return 0;
}