Cod sursa(job #149550)

Utilizator alex23alexandru andronache alex23 Data 5 martie 2008 20:44:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>




 int main()
  {FILE *fin,*fout;
   long int a,n,putere;

   fin=fopen("lgput.in","r");
   fscanf(fin,"%ld %ld",&a,&n);
   fclose(fin);

   putere=1;
   while (n)
    {if (n%2) putere*=a;
     if (putere>=1999999973) putere=putere%1999999973;
     n=n/2;
     a=a*a;
     if (a>=1999999973) a=a%1999999973;
     }

  fout=fopen("lgput.out","w");
  fprintf(fout,"%ld",putere);
  fclose(fout);

  return 0;
  }