Cod sursa(job #2390728)

Utilizator SmokeCiocotisan Cosmin Smoke Data 28 martie 2019 11:56:47
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
using namespace std;

const int v = 1999999973;

long calc_putere(long n, long p)
{
    if(p == 0 )
          return 1;

    if( p == 1) return n;

    if(p%2 == 0) return calc_putere(n, p/2) * calc_putere(n,p/2);

    return n* calc_putere(n,(p-1)/2) * calc_putere(n,(p-1)/2);

}

void citire(long &n, long &p)
{
    ifstream in("lgput.in");

    in>>n>>p;

    in.close();

}

int main()
{
    long n, p;

    citire(n,p);

    ofstream out("lgput.out");

     out<<calc_putere(n,p) % v;


    return 0;
}