Cod sursa(job #591000)

Utilizator ukiandreaAndreea Lucau ukiandrea Data 21 mai 2011 16:48:11
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.36 kb
#include <stdio.h>

int powlg(int n, int p)
{
	if (p == 1)
		return n;

	if (p % 2 == 0)
	{
		int n2 = powlg(n, p/2);
		return n2 * n2;
	}
	else
	{
		int n2 = powlg(n, (p - 1)/2);
		return n * n2 * n2;
	}
}

int main()
{
	int n, p;

	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	scanf("%d %d", &n, &p);

	printf("%d", powlg(n, p));

	return 0;
}