Cod sursa(job #607541)

Utilizator MirceampMuresan Mircea Paul Mirceamp Data 12 august 2011 15:45:21
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>
#include <stdlib.h>

long int const a = 1999999973;
long int power(long int x, long int y)//x^y
{
    if(y == 0)return 1;
    else if(y % 2  == 0) return power( ( x * x ) % a, y/2 ) % a;
    else return (x * power( ( x * x ) % a , y/2 ) %a ) % a;
}
int main()
{
    long int x,p;
 FILE *fpi,*fpo;

 fpi = fopen("lgput.in","r");
 fpo = fopen("lgput.out","w");

    fscanf(fpi,"%ld %ld",&x,&p);

    fprintf(fpo,"%ld\n",power(x,p));

fclose(fpi);
fclose(fpo);
    return 0;
}