Cod sursa(job #1639420)

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

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

long long putere(int x, int n, long long 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;
    }
  }
}

long long a,b,c;

int main() {

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

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

    fclose(f); fclose(g);

    return 0;
}