Cod sursa(job #1524292)

Utilizator StefanMudragMudrag Stefan StefanMudrag Data 13 noiembrie 2015 20:37:30
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<iostream>
#include<fstream>
#define MOD 1999999973


using namespace std;

long long Putere_in_Log2(long long n , long long p ) ;

int main()
{
    long long n , p , solutie ;

    ifstream fin("lgput.in") ;

    ofstream fout("lgput.out") ;

    fin>>n>>p;

    solutie = Putere_in_Log2 ( n , p ) ;

    fout<<solutie ;

    fin.close() ;

    fout.close() ;

    return 0 ;


}

long long Putere_in_Log2(long long n , long long p )
{

    if(p==1) return n ;

    if(p&1)

   {
      n = (n * n) % MOD ;

      return Putere_in_Log2(n , ( p - 1 ) / 2 ) % MOD ;

   }

   n = ( n * n ) % MOD ;

   return Putere_in_Log2 ( n , p / 2 ) % MOD;


}