Cod sursa(job #146290)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 1 martie 2008 15:19:40
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>

int n, p, mod;

long long putere(int n, int p)
{
	if (p == 1) return n;
	else if (p % 2) return ((((putere(n,p/2) % mod) * (putere(n,p/2) % mod)) % mod) * n) % mod;
	else return ((putere(n,p/2) % mod) * (putere(n,p/2) % mod)) % mod;
}

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