Cod sursa(job #612031)

Utilizator nikopolCristian Condurache nikopol Data 5 septembrie 2011 15:18:00
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.44 kb
#include<stdio.h>
#define m 1999999973

long exponentiere(unsigned long x, unsigned long n) {

	if(n==0) return 1;
	if(n%2!=0)
		return ( x*exponentiere( (x*x)%m ,(n-1)/2) )%m;
	else
		return ( exponentiere( (x*x)%m ,n/2) )%m;

}

int main() {

	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	
	unsigned long put, rez, nr;
	
	scanf("%lu",&nr);
	scanf("%lu",&put);
	
	rez = exponentiere(nr,put)%m;
	
	printf("%lu",rez);
	
	return 0;
}