Cod sursa(job #1639416)

Utilizator Valentin0709Datcu George Valentin Valentin0709 Data 8 martie 2016 12:16:32
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
using namespace std;

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

int putere(int x, int n, int r) {
  long long p;

  if(n==1) return x%r;
  else {
    if(n%2==0) {
        p=putere(x,n/2,r);
        return p*p%r;
    }
    else {
        p=putere(x,(n-1)/2,r);
        return p*p*x%r;
    }
  }
}

int a,b,c;

int main() {

    fscanf(f,"%d%d%d",&a,&b);

    fprintf(g,"%d",putere(a,b,1999999973));

    fclose(f); fclose(g);

    return 0;
}