Cod sursa(job #801400)

Utilizator icb_mnStf Cic icb_mn Data 24 octombrie 2012 10:42:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include<fstream>
#define MOD 1999999973
#define ULL unsigned long long
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
ULL a,n;
ULL ridica(ULL n)
{
    ULL q;
    if(!n) return 1;
    q = ridica(n/2);
    q = (q * q) % MOD;
    if(n % 2) q = (q * a) % MOD;
    return q;
}

int main()
{
    f>>a>>n;
    g<<ridica(n)<<'\n';
    g.close();
    return 0;
}