Cod sursa(job #448743)

Utilizator Smaug-Andrei C. Smaug- Data 4 mai 2010 17:04:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include <cstdio>

const long long int m = 1999999973;

int main(){

  unsigned i, n, p;
  long long int a, sol;

  freopen("lgput.in", "r", stdin);
  freopen("lgput.out", "w", stdout);

  scanf("%d %d", &n, &p);

  a = n; sol = 1;
  for(i = 0; (1<<i) <= p; i++){
    if(((1<<i) & p) > 0)
      sol = (sol*a) % m;

    a = (a*a) % m;
  }
  printf("%lld\n", sol);

  return 0;
}