Cod sursa(job #1228544)

Utilizator o_micBianca Costin o_mic Data 14 septembrie 2014 15:45:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <iostream>
#define  LL long long
#define MOD 1999999973

using namespace std;

LL power(LL exp, LL base)
{
  if(exp == 1)
    return base;
  if(exp % 2)
    return (base * power(exp / 2, (base * base)% MOD)) % MOD;
  else
    return (power(exp / 2, (base * base)% MOD))% MOD;
}

int main()
{
  LL n, p;
  freopen("lgput.in", "r", stdin);
  freopen("lgput.out", "w", stdout);
  cin >> n >> p;
  cout << power(p, n);
  return 0;
}