Cod sursa(job #1590028)

Utilizator CipiNisNisioi Ciprian CipiNis Data 4 februarie 2016 17:29:37
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
unsigned long long N,P;
unsigned long long ridicare_putere(int N, int P)
{
    unsigned long long x;
    if(P==1) return N;
    else if(P%2){
        x=ridicare_putere(N,P/2);
        return ((x*x)%MOD)*N%MOD;
    }
    else{
        x=ridicare_putere(N,P/2);
        return (x*x)%MOD;
    }
}
int main()
{
    f>>N>>P;
    g<<ridicare_putere(N,P);
    f.close();
    g.close();
    return 0;
}