Cod sursa(job #2225494)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 27 iulie 2018 12:59:32
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

using namespace std;
const int MOD = 1999999973;
int n,p;

int ridica(int x, int y)
{
    if(y < 0) return ridica(1/x,-y) % MOD;
    else if(y == 0) return 1;
    else if(y == 1) return x % MOD;
    else if(y & 1) (return x % MOD * ridica(x*x,(y-1) / 2)) % MOD;
    else return ridica(x*x,y/2) % MOD;
}

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

    scanf("%d %d\n",&n,&p);
    int x = ridica(n,p);
    printf("%d\n", x);
}