Cod sursa(job #1718648)

Utilizator BossuSmekeruStapanulocu1 BossuSmekeru Data 18 iunie 2016 17:12:06
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

using namespace std;

#define NMAX 1999999973

int putere (long long x, long long n){

    if (n == 1){
        return x % NMAX;
    }

    if (n % 2 == 0){
        return putere((x * x) % NMAX, n / 2) % NMAX;
    }

    else {
        return (x * putere((x * x) % NMAX, (n - 1) / 2)) % NMAX;
    }

}
int main()
{
    int n, p;
    ifstream cin ("lgput.in");
    ofstream cout ("lgput.out");
    cin >> n >> p;
    cout << putere (n, p);
    return 0;
}