Cod sursa(job #156435)

Utilizator AlxCojocaru Alexandru Alx Data 12 martie 2008 15:49:21
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.31 kb
#include <stdio.h>
long n,p,mod=1999999973,r=1,c;
int main()
{
 freopen("lgput.in","r",stdin);
 freopen("lgput.out","w",stdout);
 scanf("%ld %ld\n",&n,&p);
 long i;
 for (i=0;(1<<i)<=p;i++)
 {
  if (!i)
   c=n;
  else
   c=(c*c)%mod;
  if (p&(1<<i))
   r=(r*c)%mod;
 }
 printf("%ld\n",r);
 return 0;
}