Cod sursa(job #447058)

Utilizator vladstoickvladstoick vladstoick Data 27 aprilie 2010 16:54:26
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include<stdio.h>

const long long r = 1999999973;

int n,p;
int dobrepute(int a,int n)
{
	int p = 1;
	while(n)
	{
		if(n%2==1)
			p=(long long)p*a%r;
		a=a*a%r;
		n/=2;
	}
	return p;
}	
int main()

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