Cod sursa(job #423254)

Utilizator piroslPiros Lucian pirosl Data 23 martie 2010 17:56:40
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>

#define MOD 1999999973

long put(int n, int p)
{
	if(p == 2)
		return (n*n) % MOD;
	if(p % 2 == 0) 
	{
		int a = put(n, p/2);
		return (a*a) % MOD;
	}

	return (n * put(n, p-1) ) % MOD;
}

int main(void)
{
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);


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

	int res = put(n, p);

	printf("%d\n", res);

	return 0;
}