Cod sursa(job #395802)

Utilizator SzabiVajda Szabolcs Szabi Data 13 februarie 2010 20:00:33
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>

unsigned long int n,p;

unsigned long int hatvany(unsigned long int n,unsigned long int p){
	unsigned long int temp;
	
	if(p==0){return 1;}else{
		if(p%2==0){temp=hatvany(n,p/2);return (temp*temp)%1999999973;}else{
		temp=hatvany(n,(p-1)/2); return n*temp*temp%1999999973;

	}}
}

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

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

printf("%ld",hatvany(n,p));

return 0;
}