Cod sursa(job #1492525)

Utilizator Vbs96Vitelaru Sebastian Vbs96 Data 27 septembrie 2015 20:53:42
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream c("lgput.in");
ofstream f("lgput.out");
long long n,p,aux;
int exp_rapida(long long n,long long p)
{
    if(p<0)
      {n=1/n;
       p=-p;}
     if(p==0)
        return 1;
     aux=1;
     while(p>1)
     {
        if(p%2==0)
        {n=n*n;
         p=p/2;}
         else
         { aux=n*aux;
           n=n*n;
           p=(p-1)/2;}}
      return n*aux;
}
int main()
{   c>>n>>p;
    f<<exp_rapida(n,p)%1999999973;
    return 0;
}