Cod sursa(job #790402)

Utilizator raluca_vacaruVacaru Raluca-Ioana raluca_vacaru Data 21 septembrie 2012 08:43:00
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#define M 1999999973

using namespace std;

long long n, p;

void read () {
    freopen ("lgput.in", "r", stdin);
    scanf ("%lld%lld", &n, &p);
    fclose (stdin);
}

long long put (long long n, long long p) {
    if (p == 1) return n;
    if (p%2) return ( put(n,p-1) * n )%M;
    else return ( (put(n,p/2)%M) * (put(n,p/2)%M) ) %M;
}

void write (long long v) {
    freopen ("lgput.out", "w", stdout);
    printf ("%lld\n", v);
    fclose (stdout);
}

int main () {
    read ();
    write(put (n, p));
    return 0;
}