Cod sursa(job #1656806)

Utilizator Grigorescu_Nicolae_322CBGrigorescu Nicolae Grigorescu_Nicolae_322CB Data 19 martie 2016 20:16:43
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <stdio.h>

using namespace std;
long long int N,P;

long long int lg(long long int N , long long int P){
    if(P==0) return 1;
    if(P==1) return N;

    if(P%2==0) return lg(N*N,P/2);
    else return N*lg(N*N,(P-1)/2);

}

int main()
{
   FILE *f1,*f2;
   f1=fopen("lgput.in","r");
   f2=fopen("lgput.out","w");
   fscanf(f1,"%lld",&N);
    fscanf(f1,"%lld",&P);
    fprintf(f2,"%lld",lg(N,P));

   fclose(f1);
   fclose(f2);
}