Cod sursa(job #645060)

Utilizator tak3rStefan Mirea tak3r Data 8 decembrie 2011 11:07:11
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<cstdio>
#include<iostream>

using namespace std;

#define BIG_NUMBER 1999999973

int main(){
  int p,x,a;
  long long val, num;
  
  freopen( "lgput.in", "r", stdin );
  freopen( "lgput.out", "w", stdout );
  
  scanf( "%d %d", &a, &x );
  
  val = a;
  num = 1;
  p = 0;
  while( p <= x ){
    if( x & (1 << p) ){
      num = num * val % BIG_NUMBER; 
    }
    val *= val % BIG_NUMBER;
    ++p;
  }
  
  cerr << num << endl;
  printf("%lld\n", num);
  
}