Cod sursa(job #211852)

Utilizator ye_kai008Ye Kai ye_kai008 Data 3 octombrie 2008 18:58:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
//
#include<stdio.h>
int main()
{
	//int N,P,n,n2;
	long long N,P,n,n2;
	int a[30],i,j;
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%lld%lld",&N,&P);
	//scanf("%d%d",&N,&P);
	n=N%1999999973;
	j=0;
	do
	{
		j=j+1;
		a[j]=P%2;
		P=P/2;
	}while(P>0);
	n2=n;
	n=1;
	for(i=1;i<=j;i++)
	{
		if(a[i]==1) n=(n*n2)%1999999973;
		n2=(n2*n2)%1999999973;
	}
	printf("%lld",n);
	//printf("%d",n);
	return 0;
}