Cod sursa(job #1117277)

Utilizator lorundlorund lorund Data 23 februarie 2014 12:47:21
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>
#define MOD 1999999973

int pow(int x, int P);

int main()
{
    int n, p;

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

    scanf("%d %d", &n, &p);
    printf("%d", pow(n, p));
}

int pow(int x, int P){
    x %= MOD;
    if (P>0){
        int r = pow(x, P/2);
        if (P%2){
            return (((long long)r*(long long)r%MOD)*x)%MOD;
        }
        else{
            return (r*r)%MOD;
        }
    }
    return 1;
}