Cod sursa(job #2280323)

Utilizator Adi55AdrianCiurea Adi55 Data 10 noiembrie 2018 14:22:57
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <math.h>
//#include <windows.h>
using namespace std;
ifstream f ("lgput.in");
ofstream g ("lgput.out");
long long int k=1999999973;
long long int exp(long long int x,long long int y)
{
    if(y==0)
    {
        return 1;
    }
    if(y%2)
    {
        return x*(exp(x*x,(y-1)/2));
    }
    return exp(x*x,y/2);
}
int main()
{
    long long int n,rez,p,x=0;
    f>>n>>p;
    x=exp(n,p);
  //cout<<"Mie imi da: "<<x<<endl;
  g<<x%k;
  /*  rez=1;
    while(p)
    {
        if(p%2)
        {
            rez=((long long)rez*n);
        }
        n=((long long)n*n);
        p=p/2;
    }
    cout<<"Varianta corecta da:"<<rez;
  */  return 0;
}