Cod sursa(job #1793836)

Utilizator maryan_lupMarian Lupascu maryan_lup Data 31 octombrie 2016 16:35:47
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <math.h>
#define MOD 1999999973
#define ll long long
#define FOR(i, a, b) for(ll i = a; i <= b; i++)

using namespace std;

ll N, P;

void citire()
{
    ifstream f("lgput.in");
    f>>N;
    f>>P;
    f.close();
}

ll recursie(ll);

 void afisare()
 {
     ofstream g("lgput.out");
     g<<recursie(P);
     g.close();
 }

 ll recursie(ll putere)
 {
     if(putere==0)return 1;
     else
        if(putere%2)
            return (N * recursie(putere-1)%MOD)%MOD;
        else
            {
                ll aux=recursie(putere/2)%MOD;
                return (aux*aux)%MOD;
            }
 }

int main()
{
    citire();

    afisare();

    return 0;
}