Cod sursa(job #508934)

Utilizator liviu12345Stoica Liviu liviu12345 Data 9 decembrie 2010 22:24:54
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <iostream>

using namespace std ;

ifstream f ( "lgput.in" ) ;
ofstream g ( "lgput.out" ) ;

const long MODULO = 1999999973 ;

unsigned int exp ( unsigned int Baza , unsigned int Exponent ) ;

int main ( )
{
  unsigned int n , p ;
  f >> n >> p ;
  g << exp ( n , p ) ;
}

unsigned int exp ( unsigned int Baza , unsigned int Exponent )
{
  unsigned int deReturnat = 1 , bit = 1 ;
  while ( Exponent )
  {
    if ( Exponent & bit )
    {
      deReturnat *= Baza ;
      deReturnat %= MODULO ;
    }
    Baza *= Baza ;
    Exponent >>= 1 ;
    Baza %= MODULO ;
  }
  return deReturnat ;
}