Cod sursa(job #2902734)
| Utilizator | Data | 16 mai 2022 19:17:18 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c-32 | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 kb |
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
long int power(int x, int n)
{
long int result = 1;
while(n!=0)
{
if(n%2==1)
{
result*=x;
n=n-1;
}
if(n>0)
{
x*=x;
n=n/2;
}
}
return result;
}
int main()
{
int n,p;
FILE* f;
FILE* g;
f = fopen("lgput.in", "rt");
if (f == NULL)
{
printf("Nu exista fisierul!\n");
exit(EXIT_FAILURE);
}
fscanf(f,"%d%d",&n,&p);
fclose(f);
g = fopen("lgput.out", "wt");
if(g!=NULL)
{
fprintf(g, "%ld", power(n,p));
}
fclose(g);
}