Cod sursa(job #1995261)

Utilizator Lazar_LaurentiuLazar Laurentiu Lazar_Laurentiu Data 27 iunie 2017 14:13:34
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>
#define MOD 1999999973

using namespace std;

int n,p;
int rest(int nr, int put){
    if(put==1){
        return nr%MOD;
    } else {
        if(put%2==0){
            int r=rest(nr,put/2);
            return r*r%MOD;
        } else {
            int r=rest(nr,put-1);
            return r*nr%MOD;
        }
    }
}

int main()
{
    ifstream f ("lgput.in");
    ofstream g ("lgput.out");
    f>>n>>p;
    g<<rest(n,p);
    f.close ();
    g.close ();
    return 0;
}