Cod sursa(job #563660)

Utilizator biroBiro Alexandru biro Data 25 martie 2011 17:28:09
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <algorithm>
#define mod 1999999973

using namespace std ;

int max=10001 ;
long long a ;
long long solutie=1 ;
int n ;
long long p ;

int main() {
  freopen ("lgput.in","r",stdin) ;
  freopen ("lgput.out","w",stdout) ;

  scanf ("%d%d" , &n , &p) ;
  a=n ;
  for (int i=0 ; (1<<i)<=p ; ++i) {
    if ( (1<<i)&p )
      solutie=(solutie*a)%mod ;
    a=(a*a)%mod ;
  }
  printf ("%lld" , solutie) ;

  return 0;
}