Cod sursa(job #2079688)

Utilizator pistvanPeter Istvan pistvan Data 1 decembrie 2017 18:31:29
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>
#define M 1999999973
using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");
int N, P;
long long exp(long long base, unsigned int e)
{
    if (e==0)
        return 1;
    else if (e==1)
        return base%M;
    else
    {
        long long r = exp(base%M, e/2);
        r = (r*r)%M;
        if (e%2)
            r = (base*r)%M;
        return r;
    }
}
int main()
{
    f>>N>>P;
    N = N%M;
    g<<exp(N, P);
}