Cod sursa(job #718415)
| Utilizator | Data | 20 martie 2012 19:41:00 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.38 kb |
#include<stdio.h>
FILE *f=fopen("lgput.in","r"), *g=fopen("lgput.out","w");
int n, p;
long long put(int n, int p)
{
if( (p%2 == 0) && p)
{
int a = put (n, p/2);
return a*a;
}
if(p==0)
return 1;
else
if(p==1)
return n;
else
if(p%2)
return n*put(n, p-1);
}
int main()
{
fscanf(f,"%d %d", &n, &p);
fprintf(g,"%d", put(n,p));
return 0;
}
