Cod sursa(job #291847)

Utilizator otilia_sOtilia Stretcu otilia_s Data 30 martie 2009 14:33:04
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>
#define MODULO 1999999973
unsigned long n,p;


void citire()
{
 FILE *fin=fopen("lgput.in","r");
 fscanf(fin,"%ld %ld",&n,&p);
 fclose(fin);
}

int main()
{
 citire();
 n%=MODULO;
 unsigned long i,y,z;
 i=p; y=1; z=n;
 while (i!=0)
  {
   if (i%2) y=(y*z)%MODULO;
   z=(z*z)%MODULO;
   i>>=1;
  }
 FILE *fout=fopen("lgput.out","w");
 fprintf(fout,"%ld\n",y);
 fclose(fout);
 return 0;
}