Cod sursa(job #1525405)

Utilizator HorridSaracin Mihnea Horrid Data 15 noiembrie 2015 00:10:39
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#include <stdlib.h>

const long long m=1999999973;
FILE *f,*g;


long long   exp(long long x,long long i)
{
long long l=x%m;

if (i<0)    return exp(1/x,-i);
else if(i==0)    return  1;
   else if (i==1)       return x;
        else if(i%2==0)    return  exp((l*l)%m,i/2);
            else if(i%2==1)   return x*exp((l*l)%m,(i-1)/2);



}

int main()
{
   long long n,p,z=0;


    f=fopen("lgput.in","r");
    g=fopen("lgput.out","w");
    fscanf(f,"%lld",&n);
      fscanf(f,"%lld",&p);
      z=exp(n,p);
   fprintf(g,"%lld",z);
    fclose(f);
    fclose(g);

    return 0;
}