Cod sursa(job #1182280)

Utilizator dropsdrop source drops Data 5 mai 2014 19:51:44
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
#define MOD 1999999973

long long n;
int p;

long long pow(int p) {
    if (p == 0) {
        return 1;
    } else
    if (p == 1) {
        return n;
    } else {
        long long r = pow(p/2);
        if (p % 2) {
            return (r * r) % MOD * n % MOD;
        } else {
            return (r * r) % MOD;
        }
    }
}

int main() {
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);

    cin >> n >> p;
    cout << pow(p);

    return 0;
}