Cod sursa(job #607542)

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

long long const a = 1999999973;
long long int power(long long int x, long 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 long int x,p;
 FILE *fpi,*fpo;

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

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

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

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