Cod sursa(job #618162)

Utilizator desoComan Andrei deso Data 15 octombrie 2011 14:52:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <string>
using namespace std;

#define LL long long
#define INFILE "lgput.in" 
#define OUTFILE "lgput.out"
#define MOD 1999999973

int main()
{
  freopen(INFILE, "r", stdin);
  freopen(OUTFILE, "w", stdout);

  unsigned long long int n, p, np = 1;
  scanf("%lld %lld", &n, &p);

  for(unsigned long long int i=1; i<=p; i<<=1, n = (n*n)%MOD)
	  if( i&p )
      np = (np * n) % MOD;

  cout << np << "\n";
	return 0;
}