Cod sursa(job #457349)

Utilizator GulyanAlexandru Gulyan Data 18 mai 2010 23:30:08
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>

#define c 1999999973

unsigned long long int put(unsigned long long int n, unsigned long long int p) {
  if(p == 0)
    return 1;
  unsigned x = put(n, p/2) % c;
  x = (x * x) % c;
  if(p%2)
    x = x * n;
  return x % c;
}

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

  unsigned long long int n, p;
  scanf("%llu %llu", &n, &p);
  printf("%llu\n", put(n, p));

  fclose(stdout);

  return 0;
}