Cod sursa(job #2169981)

Utilizator alxcl12Albu Alexandru alxcl12 Data 14 martie 2018 20:14:57
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>

std::ifstream f("lgput.in");
std::ofstream g("lgput.out");

using namespace std;

int n,p;
int m=1999999973;


long long putere(int n,int p)
{
    if(p==0) return 1;
    else if(p==1) return n%m;
    else if(n==1) return 1;
    else if(p%2==1) return ((n%m)* (putere(n*n,(p-1)/2)%m)) %m;
    else if(p%2==0) return putere(n*n,p/2)%m;
}

int main()
{
   f>>n>>p;
    g<<putere(n,p);
}