Cod sursa(job #445492)
| Utilizator | 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);
}
