Cod sursa(job #392886)

Utilizator O_NealS. Alex O_Neal Data 8 februarie 2010 15:44:48
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>
#define nr 1999999973
using namespace std;

long long putere(long long x, long long n)
{
	if(n==1) return x; 
	else if(n%2) 
	{ 
		long long rez = putere(x % nr,n/2) % nr;
		return (x%nr)*((rez*rez)%nr);
	}
	else 
	{
		long long rez = putere(x % nr ,n/2) % nr;
		return (rez*rez)%nr;
	}
}


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