Cod sursa(job #445492)

Utilizator om6gaLungu Adrian om6ga Data 23 aprilie 2010 22:54:42
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long long putere(int n,int p)
{
     if (p==0) return (long long)1;
     if (p==1) return (long long)n;
     if (p%2==0) return putere(n,p/2)*putere(n,p/2);
     else return putere(n,p/2)*putere(n,p/2)*n;
}


int main()
{
    FILE *in=fopen("lgput.in","r");
    FILE *out=fopen("lgput.out","r");   
    int n,p;
    fscanf(in,"%d %d",&n,&p);
    fprintf(out,"%lld",putere(n,p));
    fclose(in); fclose(out);
}