Cod sursa(job #227740)

Utilizator ilincaSorescu Ilinca ilinca Data 5 decembrie 2008 12:39:18
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <stdio.h>

#define m 1999999973

int n, p;

int lgput (int p)
{
	
	if (p == 0)
		return 1;
	if (p&1)
		return (long long)(n%m) * (lgput (p-1)%m) %m;
	else
	{
		int x=lgput (p>>1);
		return (long long)(x%m) * (x%m) %m;
	}
}

int main ()
{
		freopen ("lgput.in", "r", stdin);
		freopen ("lgput.out", "w", stdout);
		scanf ("%d%d", &n, &p);
		printf ("%d\n", lgput (p));
		return 0;
}