Cod sursa(job #1326173)

Utilizator andreiulianAndrei andreiulian Data 24 ianuarie 2015 20:33:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include<fstream>
#include<iostream>
#define q 1999999973
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
int N,P;

int putere(int N,int P)
{
    int n=1;
    while(P>1)
    {
        if(P&1)
        {
            n=(1ll*n*N)%q;
            P--;
        }
        N=(1ll*N*N)%q;
        P=P>>1;
    }
    return (1ll*n*N)%q;
}

int main()
{
    in>>N>>P;
    out<<putere(N,P);
}