Cod sursa(job #3230458)

Utilizator DraghiciDenisDraghici Denis Cosmin DraghiciDenis Data 21 mai 2024 18:04:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>
#include <stdlib.h>

long long exponent(long N, long long P)
{
  if(P == 0){
    return 1;
  }
  else if(P % 2 == 0){
    return exponent(N * N, P / 2);
  }
  else if(P % 2 != 0){
    return N * exponent(N * N, (P - 1) / 2);
  }
  return 1;
}

int main(void)
{
  FILE *input = fopen("lgput.in", "r");
  FILE *output = fopen("lgput.out", "w");
  long long N, P;
  fscanf(input, "%lld", &N);
  fscanf(input, "%lld", &P);
  fprintf(output, "%lld", exponent(N, P) % 1999999973);
  fclose(input);
  fclose(output);
  return 0;
}