Cod sursa(job #1317130)

Utilizator Miruna_DMiruna Miruna_D Data 14 ianuarie 2015 16:38:59
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>
#include <vector>
#define mod 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long n,p,sol;

int ridicare(long long n,long long p)
{
    n=n%mod;
     if(p==0) return 1;
    if(p==1) return n;

    if(p%2==0)
        return ridicare(n*n,p/2);
     else
      return  n * ridicare(n*n,p-1);

}
int main()
{
        fin>>n>>p;
       sol= ridicare(n,p);

        fout<<sol%mod;
    return 0;
}