Cod sursa(job #744257)

Utilizator ciorile.chioareBogatu Adrian ciorile.chioare Data 8 mai 2012 09:30:41
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <cstdio>

int lgput(int n, int p, int m) {
  if(!p)
    return 1;
  if(p & 1)
    return lgput(n * n, p >> 1, m) % m * n %m;
  else
    return lgput(n * n, p >> 1, m) % m;
}

int main(void) {

  int n, p;

  FILE *in = fopen("lgput.in", "r");
  FILE *out = fopen("lgput.out", "w");

  fscanf(in, "%d%d", &n, &p);

  fprintf(out, "%d\n", lgput(n, p, 1999999973));

  return 0;
}